This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
configuration:telephone-on-serial [2017/10/18 12:08] – [The output of a telephone number on the serial interface] gray | configuration:telephone-on-serial [2017/10/23 16:18] – fachet | ||
---|---|---|---|
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. |
{{: | {{: | ||
Line 44: | Line 44: | ||
{{: | {{: | ||
- | Next, we need to set the trigger for the script under the „Triggers“ option. Here again a name must be assigned for the function. Under the Type option, „evebt-based“ is selected. The function „system-startuo“ is used as an event. | + | Next, we need to set the trigger for the script under the „Triggers“ option. Here again a name must be assigned for the function. Under the Type option, „event-based“ is selected. The function „system-startup“ is used as an event. |
{{: | {{: | ||
Line 71: | Line 71: | ||
===== SDK-Script ===== | ===== SDK-Script ===== | ||
- | The SDK command | + | The SDK script |
- | With a loop and the SDK command, you get when a voice call comes in. | + | <code - serial-write.are > |
- | <code - voice_evenet.ads > | ||
- | while(true) | + | /* DESC: This script can be used to write a message to the serial port. |
- | { | + | * Copyright |
- | dump(nb_voice_event(10)); | + | */ |
- | } | + | |
+ | DEV = " | ||
+ | |||
+ | |||
+ | void usage() | ||
+ | { | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | if (argc < 1) | ||
+ | usage(); | ||
+ | |||
+ | |||
+ | /* open serial port */ | ||
+ | ret = nb_serial_setattr(DEV, | ||
+ | if (ret != 0) { | ||
+ | nb_syslog(" | ||
+ | exit(3); | ||
+ | } | ||
+ | fd = nb_serial_open(DEV); | ||
+ | if (fd < 0) { | ||
+ | nb_syslog(" | ||
+ | exit(4); | ||
+ | } | ||
+ | |||
+ | while (true) { | ||
+ | msg = nb_voice_event(1).call.calling; | ||
+ | if (!is_void(msg)) { | ||
+ | msg = left(msg, strlen(msg) - 5); // trim phone number | ||
+ | msg = right(msg, strlen(msg) - 6); | ||
+ | msg = strcat(msg, " | ||
+ | len = strlen(msg); | ||
+ | |||
+ | if (write(fd, msg, len) != len) { | ||
+ | nb_syslog(" | ||
+ | close(fd); | ||
+ | exit(5); | ||
+ | } | ||
+ | } | ||
+ | /* not reached */ | ||
</ | </ | ||
- | This structure | + | The SDK command „nb_voice_event“ makes it possible to query the status |
+ | |||
+ | You can use the test window to see when a voice call comes in. | ||
< | < | ||
+ | dump(nb_voice_event(10)); | ||
+ | </ | ||
- | void | + | This structure of output, with the number, status and type output. |
+ | < | ||
struct(2): { | struct(2): { | ||
.call = struct(4): { | .call = struct(4): { | ||
Line 106: | Line 149: | ||
.state = string[6]: " | .state = string[6]: " | ||
} | } | ||
- | .type = string[6]: " | ||
} | } | ||
Line 112: | Line 154: | ||
</ | </ | ||
- | |||
- | 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 | ||
- | |||
- | |||
- | /* DESC: This script can be used to write a message to the serial port. | ||
- | * Copyright (C) 2017 NetModule AG, Switzerland | ||
- | */ | ||
- | |||
- | void usage() | ||
- | { | ||
- | printf(" | ||
- | exit(1); | ||
- | } | ||
- | |||
- | if (argc < 1) { | ||
- | usage(); | ||
- | } | ||
- | |||
- | DEV = " | ||
- | |||
- | while(true) | ||
- | { | ||
- | |||
- | MSG = nb_voice_event(1).call.calling; | ||
- | |||
- | if ( !is_void(MSG)) | ||
- | { | ||
- | |||
- | MSG = left(MSG, | ||
- | MSG = right(MSG, | ||
- | |||
- | /* check serial port config */ | ||
- | st = nb_config_get(" | ||
- | if (st != " | ||
- | printf(" | ||
- | exit(1); | ||
- | } | ||
- | |||
- | ret = nb_serial_setattr(DEV, | ||
- | if (ret != 0) { | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | fd = nb_serial_open(DEV); | ||
- | if (fd < 0) { | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | | ||
- | ret = write(fd, message, strlen(message)); | ||
- | if (ret> 0) { | ||
- | | ||
- | } else { | ||
- | | ||
- | } | ||
- | | ||
- | |||
- | } | ||
- | } | ||
- | |||
- | exit(0); | ||
- | |||
- | </ | ||
- | |||