Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
app-notes:voice [2016/06/14 08:58]
fachet created
app-notes:voice [2021/12/06 14:40] (current)
schmitt
Line 1: Line 1:
 +====== Voice support ======
 The NetModule Router Series NB2000 and NB3000 support voice and audio communication with two extension: The NetModule Router Series NB2000 and NB3000 support voice and audio communication with two extension:
  
-  - **Voice** GSM-Voice to VoIP/SIP to make or receive voice call over the mobile network. +  - **Voice-License ("​V"​)** GSM-Voice to VoIP/SIP to make or receive ​PSTN voice call over the mobile network. 
-  - **Audio** line-in/​out to VoIP/SIP to connect audio signals directly to the device. Typical microphone and loudspeaker via external amplifier.+  - **Audio ​("​A"​)** stereo ​line-in/out to VoIP/SIP to connect audio signals directly to the device. Typical microphone and loudspeaker via external amplifier. 
 +  - **Push-to-Talk ("​Ap"​)** mono line in/out to connect audio signals directly to the device, 1/1 digital in/out e.g. for call & ring signaling
  
-====== Basic concept ​======+ 
 +===== Basic concept =====
 An endpoint is a SIP/VoIP device like An endpoint is a SIP/VoIP device like
   * Internal GSM-Voice   * Internal GSM-Voice
Line 16: Line 19:
 For more complex applications the SDK can be used. For more complex applications the SDK can be used.
  
-{{:​app-notes:​voice1.jpg?​200|}}+{{:​app-notes:​voice1.jpg?​600|}}
  
 ===== Voice gateway configuration via Web GUI===== ===== Voice gateway configuration via Web GUI=====
 +
 +Using the router with a SIP phone client.
 ==== Administration ==== ==== Administration ====
-{{:​app-notes:​voice2.jpg|}}+{{:​app-notes:​voice1.png?600|}}
 ==== Endpoints ==== ==== Endpoints ====
-{{:​app-notes:​voice3.jpg|}}+{{:​app-notes:​voice2.png?600|} 
 + 
 +^ Parameter ^ Voice Gateway Endpoint Types ^ 
 +| Voice-Over-Mobile | Endpoint for GSM/​UMTS/​LTE calls (can be used for calls to mobile or landline phones)| 
 +| SIP (registrar)| SIP endpoint which can be a client registered to our registrar | 
 +| SIP (direct)| Endpoint for calls directly routed to a SIP agent without registration | 
 +| SIP (user-agent) | Endpoint acting as SIP user agent towards a remote registrar |
 ==== Endpoint types ==== ==== Endpoint types ====
-{{:​app-notes:​voice4.jpg|}}+{{:​app-notes:​voice3.jpg?600|}}
 ==== Routing ==== ==== Routing ====
-{{:​app-notes:​voice5.jpg|}}+{{:​app-notes:​voice4.png?600|}}
 ==== Routing modes ==== ==== Routing modes ====
-{{:​app-notes:​voice6.jpg|}}+{{:​app-notes:​voice5.png?600|}} 
 + 
 +===== SDK scripts ===== 
 +Endpoints are represented as structs 
 +<​code>​ 
 +struct(3): { 
 + .id = int: 54321 
 + .desc = string[5]: "​vom://​Vom1"​ 
 + .state = string[4]: "​busy"​ 
 + .volume = = int: 7 
 +}; 
 +</​code>​ 
 + 
 +Descriptors 
 +  * Sip1 First SIP subscriber 
 +  * Vom1 First Voice-Over-Mobile 
 +  * Aud1 First Audio device 
 +  * sip:​⁄⁄user@192 .168.1.254:​5060 SIP address 
 + 
 +States 
 +  * busy endpoint is already holding a call 
 +  * available endpoint is ready to take a call 
 + 
 +Calls are represented as structures which may look like: 
 +<​code>​ 
 +struct(5): { 
 + .id = int: 12345 
 + .state = string[7]: "​dialing"​ 
 + .calling = string[24]: "​sip://​user@192 .168.1.254:​5060"​ 
 + .called = string[22]: "​vom://​+123456789 @Vom1"​ 
 +}; 
 +</​code>​ 
 + 
 +The following states are possible: 
 +  * routing call is in routing state 
 +  * dialing call is in dialing state 
 +  * alerting call is in alerting state 
 +  * active call is active 
 +  * hungup call had hung up 
 + 
 +Voice functions:​ 
 +  * array nb_voice_endpoint_list (void) / struct nb_voice_endpoint_get (endpoint)  
 + 
 +  * Unordered List Itemarray nb_voice_call_list (void) / struct nb_voice_call_get (call) 
 + 
 +  * int nb_voice_call_dial (call)  
 +  * int nb_voice_call_accept (call) 
 +  * int nb_voice_call_route (call, endpoint) 
 +  * int nb_voice_call_hangup (call) 
 + 
 +  * int nb_voice_call_volume (endpoint, int level) 
 + 
 +==== How to make a call ==== 
 +=== Start Call === 
 +  * Unordered List Itemnb_voice_call_dial(call) or wait for call 
 +=== Event magement === 
 +  * Unordered List ItemOutgoing – do nothing 
 +  * Incomming - nb_voice_call_route(call,​ target endpoint) 
 +  * Dispatched: alerting ->  nb_voice_call_accept(call) 
 +=== End Call === 
 +  * nb_voice_call_hangup(call) 
 + 
 +[[sdk:​scripts:​voice-dispatcher-audio|Sample SDK Script voice call dispatching]] 
 + 
 +---- 
 + 
 +[[configuration:​configuration|Example:​ Voice Gateway Configuration File]]
  
  
 +