我知道讀命令獲取#終止的dtmf數字。但是,我怎樣才能讀取由星號字符終止的DTMF數字"*"
? 例如,如果我必須輸入「092」,我按鍵盤上的「092 *」。如何閱讀*星號中的*終止的dtmf數字
1
A
回答
1
要修改行爲,請參閱apps/app_read.c位於星號源目錄中。
if (tmp[x-1] == '#') {
tmp[x-1] = '\0';
status = "OK";
break;
}
用#替換#。
你只需要重新編譯模塊:
rm apps/app_read.o apps/app_read.so
make
cp -f apps/app_read.so /lib/asterisk/modules/
service asterisk restart
1
你有2種方法
1)不明顯,但可以工作大部分時間。只需使用AGI getdata或dialplan Read命令閱讀一位數字即可。
2)創建app_read的分支並在代碼中將#改爲*。
1
在應用程序更改tmp[x-1] == '#'
到tmp[x-1] == '*'
/app_read.c是必要的,但還不夠。
你可以做下列步驟操作:在應用
1.更換#與*/app_read.c:
// if (tmp[x-1] == '#'){
if (tmp[x-1] == '*'){
tmp[x-1] = '\0';
status = "OK";
break;
}
2.替換#在主/ app.c *:
//res = ast_readstring_full(c, s, maxlen, to, fto, "#", audiofd, ctrlfd);
res = ast_readstring_full(c, s, maxlen, to, fto, "*", audiofd, ctrlfd);
//static const char default_acceptdtmf[] = "#";
static const char default_acceptdtmf[] = "*";
//res = ast_readstring(c, s, maxlen, to, fto, "#");
res = ast_readstring(c, s, maxlen, to, fto, "*");
3.重新編譯星號:
sudo make clean
sudo make
sudo make install
我已經完成了這些步驟,它爲我工作。
相關問題
- 1. 如何使用星號讀取DTMF
- 2. DTMF數字從星號dialplan得到
- 3. JavaScript:如何終止星號,當excel數據開始在星號
- 4. 如何找到dtmf音 - 星號?
- 5. 具有未知數字位數和特定終止字符的VXML dtmf語法
- 6. 在呼叫一段時間後從被叫方讀DTMF星號
- 7. 帶有read()函數的星號11.9問題和dtmf
- 8. 閱讀CR終止關鍵字的文本文件
- 9. 星號AMI - 如何模擬通過AMI發送DTMF動作
- 10. 發送DTMF數字與撥號方案
- 11. 如何發送DTMF信號的Symbian S60
- 12. 如何防止閱讀app.config?
- 13. 如何加速iPhone DTMF信號撥號
- 14. 如何終止所有終止信號被忽略的過程?
- 15. 閱讀數字,但停止在負C++
- 16. 當PABX電話呼叫時,星號系統忽略一些DTMF數字
- 17. 星號讀數十進制
- 18. 如何閱讀dexie中的當前數據庫版本號?
- 19. 閱讀終端中的Python文檔?
- 20. 閱讀沒有行終止符的文件的第一行
- 21. ANTLRv4:如何閱讀雙引號轉義字符串中的雙引號?
- 22. 閱讀符號
- 23. 如何閱讀Express中的jsonp數據
- 24. 如何閱讀在UITextView中的行數
- 25. 如何終止`Ext.each`中的函數?
- 26. 如何閱讀中的R
- 27. 如何閱讀終端控制檯中的最後一行?
- 28. 如何閱讀node.js中的終端輸入?
- 29. 流星訂閱不停止
- 30. 以百分號表示字符和數字在列中閱讀
它總是3位數的擴展名嗎?如果您必須使用*作爲終止數字,您可以調用Read以循環方式收集1位數字。連接數字串,直到得到'*'。 –
分機號碼不是固定長度,可以是3到6位數字。 – mqacim