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
Last revision Both sides next revision
configuration:telephone-on-serial [2017/10/23 16:02]
fachet
configuration:telephone-on-serial [2017/10/23 16:35]
fachet [SDK-Script]
Line 76: Line 76:
  
  
-/* DESC: This script can be used to write a message ​to the serial port. +/* DESC: This script can be used to write calling phone numbers ​  
- * Copyright (C) 2017 NetModule AG, Switzerland+ * CR/LF terminated ​to the serial port. 
 + * 
 + * Copyright (C) 2017 NetModule AG, Switzerland ​(arg)
  */  */
  
 DEV = "​SERIAL1";​ DEV = "​SERIAL1";​
  
- +/* open serial port  */ 
-void usage() +fd = nb_serial_open(DEV); 
-+if (fd < 0) 
-  ​printf("usage: serial-write.are <​MSG>​\n"); +  ​nb_syslog("Unable to open %s", DEV); 
-  exit(1);+  exit(2);
 } }
  
-if (argc < 1) 
-    usage(); ​ 
-      
- 
-/* open serial port  */ 
 ret = nb_serial_setattr(DEV,​ 115200, 8, 1, 0, 0); ret = nb_serial_setattr(DEV,​ 115200, 8, 1, 0, 0);
 if (ret != 0) { if (ret != 0) {
Line 99: Line 96:
   exit(3);   exit(3);
 } }
-fd = nb_serial_open(DEV);​ +
-if (fd < 0) { +
-  nb_syslog("​Unable to open %s\n", DEV); +
-  exit(4); +
-}+
  
 while (true) { while (true) {
-  msg = nb_voice_event(1).call.calling;​+  msg = nb_voice_event(1).call.calling;​ // check event with 1sec timeout
   if (!is_void(msg)) {   if (!is_void(msg)) {
     msg = left(msg, strlen(msg) - 5); // trim phone number     msg = left(msg, strlen(msg) - 5); // trim phone number
     msg = right(msg, strlen(msg) - 6);     msg = right(msg, strlen(msg) - 6);
     msg = strcat(msg, "​\r\n"​);​     msg = strcat(msg, "​\r\n"​);​
 +    len = strlen(msg);​
  
-    if (write(fd, msg, strlen(msg< 0 ); +    if (write(fd, msg, len!= len{ 
- nb_syslog("​Error on writing to %s\n", DEV);+ nb_syslog("​Error on writing ​%d bytes to %s", len, DEV);
  close(fd);  close(fd);
- exit(5);+ exit(4);
     }     }
 +  }
 } }
 /* not reached */ /* not reached */
Line 123: Line 118:
 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. 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.are > +
- +
- while(true) +
-+
- dump(nb_voice_event(10));​ +
- }+
  
 +<​code>​
 +dump(nb_voice_event(10));​ // wait 10secs for call
 </​code>​ </​code>​
  
Line 137: Line 127:
  
 <​code>​ <​code>​
- 
-void 
- 
 struct(2): { struct(2): {
   .call = struct(4): {   .call = struct(4): {
Line 156: Line 143:
             .state = string[6]: "​hungup"​             .state = string[6]: "​hungup"​
           }           }
-  .type = string[6]: "​hungup"​ 
 } }