This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
app-notes:voice [2016/06/14 08:58] – created fachet | 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 (" |
- | - **Audio**line-in/ | + | - **Audio |
+ | - **Push-to-Talk (" | ||
- | ====== 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. | ||
- | {{: | + | {{: |
===== Voice gateway configuration via Web GUI===== | ===== Voice gateway configuration via Web GUI===== | ||
+ | |||
+ | Using the router with a SIP phone client. | ||
==== Administration ==== | ==== Administration ==== | ||
- | {{: | + | {{: |
==== Endpoints ==== | ==== Endpoints ==== | ||
- | {{: | + | {{: |
+ | |||
+ | ^ Parameter ^ Voice Gateway Endpoint Types ^ | ||
+ | | Voice-Over-Mobile | Endpoint for GSM/ | ||
+ | | 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 ==== | ||
- | {{: | + | {{: |
==== Routing ==== | ==== Routing ==== | ||
- | {{: | + | {{: |
==== Routing modes ==== | ==== Routing modes ==== | ||
- | {{: | + | {{: |
+ | |||
+ | ===== SDK scripts ===== | ||
+ | Endpoints are represented as structs | ||
+ | < | ||
+ | struct(3): { | ||
+ | .id = int: 54321 | ||
+ | .desc = string[5]: " | ||
+ | .state = string[4]: " | ||
+ | .volume = = int: 7 | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | Descriptors | ||
+ | * Sip1 First SIP subscriber | ||
+ | * Vom1 First Voice-Over-Mobile | ||
+ | * Aud1 First Audio device | ||
+ | * sip: | ||
+ | |||
+ | 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: | ||
+ | < | ||
+ | struct(5): { | ||
+ | .id = int: 12345 | ||
+ | .state = string[7]: " | ||
+ | .calling = string[24]: " | ||
+ | .called = string[22]: " | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | 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, | ||
+ | * Dispatched: alerting -> nb_voice_call_accept(call) | ||
+ | === End Call === | ||
+ | * nb_voice_call_hangup(call) | ||
+ | |||
+ | [[sdk: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | [[configuration: | ||
+ | |||