This is an old revision of the document!
Voice support
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. 
-  Audio line-in/out to VoIP/SIP to connect audio signals directly to the device. Typical microphone and loudspeaker via external amplifier. 
 
Basic concept
An endpoint is a SIP/VoIP device like
To establish a call two steps are needed:
-  Signalling  = establish a call 
-  Call-Routing = making the connection 
Simple behaviour can be configured by the Web-GUI. 
For more complex applications the SDK can be used.
 
 
Voice gateway configuration via Web GUI
Administration
Endpoints
Endpoint types
Routing
Routing modes
SDK scripts
Endpoints are represented as structs
struct(3): {
	.id = int: 54321
	.desc = string[5]: "vom://Vom1"
	.state = string[4]: "busy"
	.volume = = int: 7
};
Descriptors
-  Sip1 First SIP subscriber 
-  Vom1 First Voice-Over-Mobile 
-  Aud1 First Audio device 
-  sip:⁄⁄user@192 .168.1.254:5060 SIP address 
States
Calls are represented as structures which may look like:
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"
};
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:
-  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) 
 
How to make a call
Start 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