Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
configuration:telephone-on-serial [2017/10/18 12:13]
gray [Create a new SDK job]
configuration:telephone-on-serial [2017/10/23 16:20]
fachet [SDK-Script]
Line 7: Line 7:
 ===== Router License Generator ===== ===== Router License Generator =====
  
-The voice gateway function must have a license in order to use it. Unter the „SYSTEM“ sub-item „Licensing“ you can see your existing licenses. If you need a license, you can get it via the support of netModule.+The voice gateway function must have a license in order to use it. Unter the „SYSTEM“ sub-item „Licensing“ you can see your existing licenses.
  
 {{:​configuration:​licensing_1.png?​direct&​900|}} {{:​configuration:​licensing_1.png?​direct&​900|}}
Line 73: Line 73:
 The SDK script „serial-write.are“ us extended for output of the call number on the serial interface. The SDK script „serial-write.are“ us extended for output of the call number on the serial interface.
  
-<code - phone_number_on_serial_port.ads   >+<code - serial-write.are   >
  
  
Line 79: Line 79:
  * Copyright (C) 2017 NetModule AG, Switzerland  * Copyright (C) 2017 NetModule AG, Switzerland
  */  */
 +
 +DEV = "​SERIAL1";​
 +
  
 void usage() void usage()
 { {
-    ​printf("​usage: ​phone number on serial ​port.are <msg>​\n"​);​ +  ​printf("​usage:​ serial-write.are <MSG>​\n"​);​ 
-    exit(1);+  exit(1);
 } }
  
-if (argc < 1) { +if (argc < 1) 
-    usage();+    usage();  
 +      
 + 
 +/* open serial port  */ 
 +ret = nb_serial_setattr(DEV,​ 115200, 8, 1, 0, 0); 
 +if (ret != 0) { 
 +  nb_syslog("​Could not set serial attributes on %s return code %i", DEV, ret); 
 +  exit(2); 
 +
 +fd = nb_serial_open(DEV);​ 
 +if (fd < 0) { 
 +  nb_syslog("​Unable to open %s\n", DEV); 
 +  exit(3);
 } }
  
-DEV = "SERIAL1";+while (true) { 
 +  msg nb_voice_event(1).call.calling;​ //​ check event with 1sec timeout 
 +  if (!is_void(msg)) { 
 +    msg = left(msg, strlen(msg) - 5); // trim phone number 
 +    msg = right(msg, strlen(msg) - 6); 
 +    msg = strcat(msg, ​"\r\n"); 
 +    len = strlen(msg);
  
-while(true) +    if (write(fd, ​msglen!= len) { 
-+ nb_syslog("Error on writing ​%d bytes to %s", ​len, DEV); 
- + close(fd); 
- MSG = nb_voice_event(1).call.calling;​ + exit(4); 
- +    } 
- if ( !is_void(MSG)) +  }
- { +
- +
- MSG = left(MSG,​strlen(MSG)-5);​ +
- MSG = right(MSG,​strlen(MSG)-6);​ +
- +
- /* check serial port config */ +
- st = nb_config_get("​serial.0.status"​);​ +
- if (st != "​2"​) { +
-    printf("​Serial port is not enabled for us\n"​);​ +
-    exit(1); +
- } +
- +
- ret = nb_serial_setattr(DEV,​ 115200, 8, 1, 0, 0); +
- if (ret != 0) { +
-     ​printf("​Could not set serial attributes: %i \n",​ret);​ +
-     ​exit(1);​ +
- } +
- +
- fd = nb_serial_open(DEV);​ +
- if (fd < 0) { +
-     ​printf("​Unable to open %s\n", DEV); +
-     ​exit(1);​ +
- } +
- +
- ​message = strcat(MSG, "​\r\n"​);​ +
- ret = write(fd, ​messagestrlen(message)); +
- if (ret> 0) { +
-     printf("Wrote %d bytes to %s\n", ​ret, DEV); +
- } else { +
-     ​printf("​Unable to write to %s\n", DEV); +
- +
- close(fd); +
- +
- }+
 } }
- +/* not reached */
-exit(0); +
 </​code>​ </​code>​
  
-The SDK command „nb_voice_event“ makes it possible to query the status of the voice call. At the address of the router  ​http://192.168.1.1/admin/sdk-api-functions.php#​sec2.15 can get further information ​of the command.+The SDK command „nb_voice_event“ makes it possible to query the status of the voice call. For more information about the SDK-API, see please to the Weblink ​http://wiki.netmodule.com/documentation/start under the item Products under one of the router'​s model you have.
  
-With a loop and the SDK command, you get when a voice call comes in. +You can use the test window to see when a voice call comes in.
- +
-<code - voice_evenet.ads > +
- +
- while(true) +
-+
- dump(nb_voice_event(10));​ +
- }+
  
 +<​code>​
 +dump(nb_voice_event(10));​ // wait 10secs for call
 </​code>​ </​code>​
  
Line 154: Line 134:
  
 <​code>​ <​code>​
- 
-void 
- 
 struct(2): { struct(2): {
   .call = struct(4): {   .call = struct(4): {
Line 173: Line 150:
             .state = string[6]: "​hungup"​             .state = string[6]: "​hungup"​
           }           }
-  .type = string[6]: "​hungup"​ 
 } }