рдЙрддреНрдкрд╛рджрди рдкрд░ WebRTC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдЖрдИрдкреАред рд╣рдо рдХреИрд╕реЗ рдЧрдП рдФрд░ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рд▓ рдХреАрдВ?

рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!



рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ WebRTC рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд╣рдм рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдЙрддреНрдкрд╛рджрди рдкрд░ WebRTC рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SIP рдЯреЗрд▓реАрдлреЛрдиреА рдХреЗ рд╕реНрдерд┐рд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИред , рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдЬрд┐рд╕ рдЪреАрдЬ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдЙрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛ред



рдФрд░ рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рдЧрдП: рджрд░реНрдж, рдШрдмрд░рд╛рд╣рдЯ, рдирдЦрд░реЗ, рдЕрд╢реНрд▓реАрд▓рддрд╛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рд░рдЦрд╡рд╛рд▓реЗ рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдВред

рдЕрдм рдпрд╣ рд╕рдм рдЕрддреАрдд рдореЗрдВ рд╣реИред рд╣рдордиреЗ рдЙрди рд╕рднреА рдмреИрд╕рд╛рдЦрд┐рдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓рд┐рдпрд╛, рдЬреЛ рд╣рдордиреЗ рдмрдирд╛рдП, рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдлреЛрди рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ред

рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдпрдерд╛рд╕рдВрднрд╡ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред



рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ, рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред





рдкреГрд╖реНрдарднреВрдорд┐:





рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреЙрд▓ рд╕реЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд┐рдЦрд╛ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ рддрд╛рдХрд┐ рд╣рдо рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рди рди рд╣реЛрдВред



рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ, рд╣рдордиреЗ рдЪреБрдирд╛:







рд╕рднреА рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:







рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ:







рддрд╛рд░рд╛рдВрдХрди + sipml



рдпрд╛рддреНрд░рд╛ рдХреА рд╢реБрд░реБрдЖрддред рд╣рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рдереА рдФрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдерд╛ред

рдЗрд╕ рдореИрдиреБрдЕрд▓ рдкрд░ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛

рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ред



рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдкрд╛рдпрд╛:



  1. рдлреЛрди рдХрд░рддреЗ рд╕рдордп "рд╕рдлреЗрдж рд╢реЛрд░"
  2. рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдХреЗ рд╕рд╛рде 10 рд╕реЗрдХрдВрдб рддрдХ рдХрд╛ рдореМрдиред
  3. рдЗрдирдХрдорд┐рдВрдЧ рдХреЙрд▓ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдереАред




1. рдЗрд╕ рдкреИрдЪ рдХреЗ рд╕рд╛рде рд╕рдлреЗрдж рд╢реЛрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

2. рд╣рдо Asterisk рдкрд░ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ рдХреЙрд▓ рдЫреЛрдбрд╝рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 1 рдХреЙрд▓ рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рдереАред

3. рд╣рдордиреЗ Asterisk рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 1.6 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ 10 рджреВрд╕рд░реА рдЪреБрдкреНрдкреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред



рдФрд░ рдЕрдм рд╣рдо 1.6 рддрд╛рд░рд╛рдВрдХрди рдкрд░ рд╣реИрдВред рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛:







рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ:



  1. RTP рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдкрд░ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
  2. рдореМрди 10 рд╕реЗрдХрдВрдб рддрдХ рдмрдирд╛ рд░рд╣рд╛ред




рдЪреБрдкреНрдкреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдордиреЗ SIPml5 рдореЗрдВ STUN рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рд╕реНрдерд┐рддрд┐ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред

рд╣рдордиреЗ WebRTC2SIP рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ SIPml5 рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдиреЗ рд╕рд▓рд╛рд╣ рджреА рдереАред



рддрд╛рд░рд╛рдВрдХрди + webrtc2sip + sipml





рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐ рд╣реИ:







рд▓реЗрдХрд┐рди! рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдХрд┐ WebRTC2SIP рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдВрддрд░рд╛рд▓реЛрдВ рдкрд░ рдЧрд┐рд░рддрд╛ рд░рд╣рд╛ред

рдЯреНрд░реИрдХрд░ рдореЗрдВ рдмрдЧреНрд░реЗрдкреЛрд░реНрдЯ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЗрдВ рдЖрдзреЗ рд╕рд╛рд▓ рддрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдерд╛, рдЬрдм рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рд╣рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред



// рдЗрд╕ рдмреАрдЪ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реИред



рдПрдХ рд╕рдкреНрддрд╛рд╣ рдмрд┐рддрд╛рдиреЗ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдП рдмрд┐рдирд╛, рд╣рдордиреЗ рдПрдХ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдпрд╛ webrtc2sip рдФрд░ рдлрд╝реНрд░реАрд╕реНрд╡рд┐рдЪ рдХреА рдУрд░ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред



freeswitch + sipml





рдореИрдВрдиреЗ рддрдм рднреА Freeswitch рдХреА рдУрд░ рджреЗрдЦрд╛, рдЬрдм WebRTC рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг 1.4 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рди рддреЛ рдПрд╕реНрдЯрд░рд┐рд╕реНрдХ, рдФрд░ рди рд╣реА рдбрд╛рдЙрдмреЛрдВрдЧреЛ рдЯреЗрд▓реАрдХреЙрдо рд╕реЗ рдорджрдж рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



Freeswitch рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдгреЛрдВ рдореЗрдВ, xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрджрдд рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк рдЙрдирдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗред

рдЬрдм рд╣рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдХреЗ рдХрд░реАрдм рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирд╕реЗ рдХрд╛рдо рдорд┐рд▓рд╛, рддреЛ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдХреЛрдИ рдХреАрдбрд╝реЗ рдирд╣реАрдВ рдереЗ, рд╣рдордиреЗ рдЙрддреНрдкрд╛рджрди рдкрд░ рдЖрдЧреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди + WebRTC2SIP рдмрдВрдбрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмрд░рдХрд░рд╛рд░ рд░рд╣реЗ



рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж, рд╕реЛрдлреНрдЯрд╕реНрд╡рд┐рдЪ рдХреА рдУрд░ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред SIPml рдХреА рдУрд░ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ:







рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдИ рдмреИрд╕рд╛рдЦреА рдмрдирд╛рдИрдВ рддрд╛рдХрд┐ рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рди рдХрд░реЗрдВ рдФрд░ JSSIP рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред JSSIP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдбрдмрдВрдЧреЛ рдФрд░ рдЙрдирдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирдлрд░рдд рдереА рдФрд░ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдмрд╣реБрдд рдЗрдЪреНрдЫрд╛ рдереАред



Tryit.jssip.net рдкрд░ рд╕рдм рдХреБрдЫ рдЬрд╛рдВрдЪрдиреЗ рдФрд░ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, JSSIP рдХреА рдУрд░ рдкрд▓рд╛рдпрди рдХрд░рдиреЗ рдХреЗ рддреАрди рджрд┐рди рдмрд╛рдж, SIP рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреАрдбрд╝реЗ рдХреЗ рдФрд░ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред



рд╕рд╛рд░рд╛рдВрд╢



рдпрд╣рд╛рдБ рдХрд╣рд╛рдиреА рд╣реИред рдФрд░ рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдпред

SIPml




рдкреЗрд╢реЗрд╡рд░реЛрдВ:





рд╡рд┐рдкрдХреНрд╖:





рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рдЙрджрд╛рд╣рд░рдг
//    SIPml.init( function(e){ var stack = new SIPml.Stack({realm: 'example.org', impi: 'bob', impu: 'sip:bob@example.org', password: 'mysecret', events_listener: { events: 'started', listener: function(e){ var callSession = stack.newSession('call-audiovideo', { video_local: document.getElementById('video-local'), video_remote: document.getElementById('video-remote'), audio_remote: document.getElementById('audio-remote') }); callSession.call('alice'); } } }); stack.start(); } );
      
      







рдХреЙрд▓ рдЙрджрд╛рд╣рд░рдг
 //    var callSession; var eventsListener = function(e){ console.info('session event = ' + e.type); } var makeCall = function(){ callSession = sipStack.newSession('call-audiovideo', { video_local: document.getElementById('video-local'), video_remote: document.getElementById('video-remote'), audio_remote: document.getElementById('audio-remote'), events_listener: { events: '*', listener: eventsListener } // optional: '*' means all events }); callSession.call('johndoe'); }
      
      







JSSIP




рдкреЗрд╢реЗрд╡рд░реЛрдВ:







рд╡рд┐рдкрдХреНрд╖:





рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 //   var configuration = { 'ws_servers': 'ws://sip-ws.example.com', 'uri': 'sip:alice@example.com', 'password': 'superpassword' }; var coolPhone = new JsSIP.UA(configuration);
      
      







рдХреЙрд▓ рдЙрджрд╛рд╣рд░рдг
 //   var selfView = document.getElementById('my-video'); var remoteView = document.getElementById('peer-video'); // Register callbacks to desired call events var eventHandlers = { 'progress': function(e){ /* Your code here */ }, 'failed': function(e){ /* Your code here */ }, 'started': function(e){ var rtcSession = e.sender; // Attach local stream to selfView if (rtcSession.getLocalStreams().length > 0) { selfView.src = window.URL.createObjectURL(rtcSession.getLocalStreams()[0]); } // Attach remote stream to remoteView if (rtcSession.getRemoteStreams().length > 0) { remoteView.src = window.URL.createObjectURL(rtcSession.getRemoteStreams()[0]); } }, 'ended': function(e){ /* Your code here */ } }; var options = { 'eventHandlers': eventHandlers, 'extraHeaders': [ 'X-Foo: foo', 'X-Bar: bar' ], 'mediaConstraints': {'audio': true, 'video': true} }; coolPhone.call('sip:bob@example.com', options);
      
      







Webrtc2sip




рдкреЗрд╢реЗрд╡рд░реЛрдВ:



рд╡рд┐рдкрдХреНрд╖:





рддрд╛рд░рд╛рдВрдХрди




рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд╢рд┐рд▓реНрдкрдХрд╛рд░ рдЗрд╕реЗ рдПрдХ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдорд░рдореНрдордд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВред

рд╕рдВрд╕реНрдХрд░рдг 1.7 рдкрд░, рд╡реЗрдмрдЖрд░рдЯреАрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдЖрдИрдкреА рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред



рд╣рдмреНрд░рд╛рд╕ рдУрд╡рд╢реЛрдЕрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛:



рд╢рд┐рд▓реНрдкрдХрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреИрдмрдВрдж рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВред рдЕрдм рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд╕рднреА-рдЧрд▓реЗ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЕрд▓рдЧ рд╣реИ: рдЬрдм рдПрдХ рддрд╛рд░рд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдПрд╡реАрдкреА рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдордВрддреНрд░рдг рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдлреЛрди рдкрд░ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдмреИрдарддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рддрджрдиреБрд╕рд╛рд░ рдПрд╡реАрдкреАрдПрдл рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреЙрд▓рд░ 603 рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛, рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╕реНрдерд╛рдиреАрдп рдПрд╕рдбреАрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ - рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рддрд╛рд░рд╛рдВрдХрди рдпрд╣ рдирд┐рдЧрд░рд╛рдиреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд┐рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмреИрдард╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдУрдкрдирд╕рд┐рдкреНрд╕ рдпрд╛ рдХрдореЗрд▓рд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред


рдирддреАрдЬрддрди, рдпрд╣ рд╕рдм рдердХрд╛ рд╣реБрдЖ рдерд╛ рдФрд░ рд╣рдордиреЗ рдПрдХ рдирд░рдо-рд╕реНрд╡рд┐рдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд░рд┐рд╕реНрд╡рд┐рдЪ рдХреЛ рдЪреБрдирд╛



Freeswitch




рдкреЗрд╢реЗрд╡рд░реЛрдВ:



рд╡рд┐рдкрдХреНрд╖:





рдкрд░рд┐рдгрд╛рдо



рдПрд╕рдЖрдИрдкреА рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╕рдВрдЪрд╛рд▓рдХ рдЦреБрд╢ рд╣реИрдВред Freeswitch + JSSIP рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдмрдВрдбрд▓ ~ 10k рдкреНрд░рддрд┐ рджрд┐рди рдФрд░ рдкреАрдХ рдЖрд╡рд░реНрд╕ рдХреЗ рджреМрд░рд╛рди 15k рддрдХ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред



рдкреБрдирд╢реНрдЪ



рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рд╣рдордиреЗ MySQL, рдХреЙрд▓ рд╕реЗрдВрдЯрд░, рдХреЙрд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде Freeswitch рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреИрд╕реЗ рдХреА рдФрд░ рдЗрд╕реЗ рдЧрд▓рддреА-рд╕рд╣рд┐рд╖реНрдгреБ рдмрдирд╛ рджрд┐рдпрд╛ред



All Articles