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] – created fachetapp-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]]
  
  
 +