åºçã®çç±ã
USSDããã³SMSãªã¯ãšã¹ãã®åŠçã«é¢ããè±å¯ãªèšäºãããã«ãããããããã¹ã¯ãªããèšèªïŒPerlãPHPãNode.jsãªã©ïŒã§ã®é³å£°åŒã³åºãã®å®è£ ã¯èŠã€ãããŸããã§ããã ãã®èšäºãçæ§ã®ã圹ã«ç«ãŠã°å¹žãã§ãã
éçºç°å¢
ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒLinux
é åžïŒopenSUSE 12.3
ã«ãŒãã«ïŒ3.7.10-1.16-desktopïŒ1 SMP PREEMPT Fri May 31 20:21:23 UTC 2013ïŒ97c14baïŒi686 i686 i386 GNU / Linux
ããã°ã©ãã³ã°èšèªïŒPerl
usbã¢ãã ïŒHuawei e1550
ã¡ãã£ãšããçè«ã
ã»ãšãã©ã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ããã®ã¢ãã ã/ devã«æ¥ç¶ãããšã3ã€ã®usbã€ã³ã¿ãŒãã§ã€ã¹ãäœæãããŸãã ããã¯éåžžïŒ
/ dev / ttyUSB0-ã¢ãã ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹
/ dev / ttyUSB1-é³å£°ïŒé³å£°ã¢ãŒãããªã³ã®å ŽåïŒã¢ãã ã€ã³ã¿ãŒãã§ã€ã¹
/ dev / ttyUSB2-ã¢ãã ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã / dev / ttyUSB0ãšã¯ç°ãªããã³ãã³ãã«å¯Ÿããã¢ãã ã®å¿çã ãã§ãªãããµãŒãã¹ã¡ãã»ãŒãžãèªã¿åãããšãã§ããŸãã ä¿¡å·å質ããŒã¿ã^ CENDåºåãªã©ã
ã¢ãã ã®æäœãéå§ããã«ã¯ããã¡ã€ã«ãšããŠèªã¿æžãããããã®ã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ã®1ã€ãéãã ãã§ãã
ã¢ãã ã«ã³ãã³ããéä¿¡ããã«ã¯ãéããŠããã€ã³ã¿ãŒãã§ã€ã¹ãã¡ã€ã«ã«ã³ãã³ããæžã蟌ãå¿ èŠããããŸãã
ãã®ã³ãã³ãã«å¯Ÿããã¢ãã ã®å¿çãååŸããã«ã¯ãéããŠããã€ã³ã¿ãŒãã§ã€ã¹ãã¡ã€ã«ããèªã¿åãå¿ èŠããããŸãã
ã¢ãã ã«äžããããšãã§ããã³ãã³ãã¯ATã³ãã³ãã§ã
Huawei e1550ã¢ãã ã®ã³ãã³ããšãããã§ååŸã§ããåçã¯ãä»æ§ã«èšèŒãããŠããŸãã
HUAWEI CDMAããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
HUAWEI UMTSããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
ã¢ãã ã®é³å£°æ©èœãæå¹ã«ããã«ã¯ãã³ãã³ãAT ^ CVOICE = 0ãçºè¡ããå¿ èŠããããŸã
é³å£°æ©èœã¯ãã³ãã³ãAT ^ CVOICE = 1ã«ãã£ãŠç¡å¹ã«ãªããŸã§æå¹ã«ãªããŸã
ãªãŒãã£ãªæ å ±ã®ã¢ãã ãžã®éåä¿¡ãéå§ããã«ã¯ãååŒã³åºãã§AT ^ DDSETEX = 2ã³ãã³ãã䜿çšããŠã¢ãã ãªãŒãã£ãªããŒãã®ã¢ãŒããåãæ¿ããå¿ èŠããããŸãã
ã¢ãã ã«éä¿¡ããããã®é³å£°ããŒã¿ã¯æ¬¡ã®åœ¢åŒã§ããå¿ èŠããããŸã
ããžã¿ã«ååšæ³¢æ°ïŒ8000ãã«ãã
ãã£ã³ãã«æ°ïŒ1ïŒã¢ãïŒã
ããžã¿ã«åãããïŒç¬Šå·ä»ã16ã
ãªãŒãã£ãªããŒã¿ã¯ã0.02ç§ããšã«320ãã€ãã®éšåã§ã¢ãã ã®ãªãŒãã£ãªããŒãã«å ¥åããå¿ èŠããããŸãã
é話ã®çµããã«ãã¢ãã ã¯2çªç®ã®ã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãCENDã¡ãã»ãŒãžã®åœ¢åŒã§é話ã«é¢ããæ å ±ãæäŸããŸãã
^ CENDåºå圢åŒïŒcall_indexãdurationãend_statusãcc_cause
ããã§ïŒ
call_index-äžæã®åŒã³åºãèå¥å
duration-ç§åäœã®é話æé
end_status-é話çµäºåŸã®ããã€ã¹ã¹ããŒã¿ã¹ã³ãŒã
cc_cause-ã³ãŒã«çµäºçç±ã³ãŒã
ã ããã å§ããŸãããã
ãã€ã€ã©ãŒã¯3ã€ã®ãã¡ã€ã«ã§æ§æãããŸãã
huawey_voice_call.pl-é³å£°ãã€ã€ã©ãŒã¹ã¯ãªããèªäœã
list.01.pl-ãµãã¹ã¯ã©ã€ããŒããŒã¿ãå«ããã¡ã€ã«ã
test.voice.raw-é³å£°ã¡ãã»ãŒãžãå¿ èŠãªåœ¢åŒã§èšé²ããããã¡ã€ã«ã
ãŸããèšäº2ã®æåŸã«ãè¿œå ã®ãã¡ã€ã«ã衚瀺ãããŸãã
cc_cause.pl-åŒã³åºãã®çµäºçç±ã®ã³ãŒããå«ãŸããŠããŸãïŒcc_causeïŒ
end_status.pl-ã³ãŒã«çµäºåŸã®ããã€ã¹ã¹ããŒã¿ã¹ã³ãŒããå«ãŸããŸãïŒend_statusïŒ
1ã€ã®ã¢ãŒã«ã€ãå ã®ãã¹ãŠã®ãã¡ã€ã« ïŒç§ã®ã³ã³ãã¥ãŒã¿ãŒã«æçš¿ãããæã ã³ã³ãã¥ãŒã¿ãŒã®é»æºãåããŸãïŒ
huawey_voice_call.plãæ€èšãã
- ïŒïŒ/ usr / bin / perl
- ïŒã¢ãžã¥ãŒã«Timeãã©ã°ã€ã³:: HiResããã³ã€ã³ããŒã
- ïŒçŸåšã®ããŒã ã¹ããŒã¹é¢æ°sleep
- ïŒãã®é¢æ°ã®æ©èœã¯ãæå®ããæ©èœã§ã
- ïŒ1ç§æªæºã®é 延
- Time :: HiRes qw ïŒ sleep ïŒã䜿çšã ãŸãã
- ïŒã³ãŒãåæåå ã³ãŒããå«ãcc_cause.plãã¡ã€ã«ãå«ãã
- ïŒãããã®ã³ãŒãã¯ãé話çµäºã®çç±ã瀺ããŠããŸã
- ïŒãã®ã¹ã¯ãªããã¯äœ¿çšãããŸããããæžã蟌ã¿çš
- å®å šãªãã€ã€ã©ãŒã¯ãããåæããå¿ èŠããããŸã
- åºåã®ãã©ã¡ãŒã¿^ CENDïŒcall_indexãdurationãend_statusãcc_cause
- ïŒmyïŒ cc_cause = do 'cc_cause.pl';
- ïŒã³ãŒããå«ããã¡ã€ã«end_status.plãã€ã³ã¯ã«ãŒãããŸãendindåå ã³ãŒããåŒã³åºããŸã
- ïŒãããã®ã³ãŒãã¯ãé話çµäºåŸã®ããã€ã¹ã®ã¹ããŒã¿ã¹ã衚瀺ããŸã
- ïŒãã®ã¹ã¯ãªããã¯äœ¿çšãããŸããããæžã蟌ã¿çš
- å®å šãªãã€ã€ã©ãŒã¯ãããåæããå¿ èŠããããŸã
- åºåã®ãã©ã¡ãŒã¿^ CENDïŒcall_indexãdurationãend_statusãcc_cause
- ïŒmyïŒ end_status = do 'end_status.pl';
- ïŒè©³çŽ°ïŒ
- ïŒCENDã¿ã€ãã®ã¡ãã»ãŒãžã¯ãé話ãçµäºãããšã¢ãã ã«ãã£ãŠçºè¡ãããŸã
- ïŒããã³é話ã«é¢ããæ å ±ãé話çµäºã®çç±ã«é¢ããæ å ±ãå«ã
- ïŒããã³ããã€ã¹ã®ã¹ããŒã¿ã¹ã«ã€ããŠã
- ïŒåºå圢åŒ^ CENDïŒcall_indexãdurationãend_statusãcc_cause
- ïŒããã§ïŒ
- ïŒcall_index-äžæã®åŒã³åºãèå¥å
- ïŒduration-ç§åäœã®é話æé
- ïŒend_status-é話çµäºåŸã®ããã€ã¹ã¹ããŒã¿ã¹ã³ãŒã
- ïŒcc_cause-é話ãçµäºããçç±ã³ãŒã
- ïŒã¢ãã ãOS LinuxãæèŒããã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ããå Žå
- ïŒ3 USBã€ã³ã¿ãŒãã§ã€ã¹ã¯ãã¢ãã ãšã®ããŒã¿äº€æã®ããã«äœæãããŸã
- ïŒéåžžããïŒ
- ïŒ/ dev / ttyUSB0-ã¢ãã ã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹
- ïŒ/ dev / ttyUSB1-é³å£°ïŒé³å£°ã¢ãŒãããªã³ã®å ŽåïŒã¢ãã ã€ã³ã¿ãŒãã§ã€ã¹
- ïŒ/ dev / ttyUSB2-ã¢ãã ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã ãã®ç¹ã§/ dev / ttyUSB0ãšã¯ç°ãªããŸã
- ïŒã¢ãã ã®ã³ãã³ãã«å¯Ÿããå¿çã ãã§ãªãããµãŒãã¹ã«å¯Ÿããå¿çãèªãããšãã§ãã
- ïŒã¡ãã»ãŒãžã ä¿¡å·å質ããŒã¿ã^ CENDåºåãªã©ã
- ïŒã¢ãã ã«ãµãŠã³ããéä¿¡ããããŒãã瀺ããŸã
- $ VOICE_PORT = "/ dev / ttyUSB1" ;
- ïŒã¢ãã ã³ãã³ããæäŸããããŒãã瀺ããŸã
- $ COMMAND_PORT = "/ dev / ttyUSB2" ;
- ïŒèšå®ïŒ
- ïŒ0-ãããã°åºåãç¡å¹ã«ãã
- ïŒ1-ãããã°åºåãæå¹ã«ãã
- $ VERBOSE = 1 ;
- ïŒèªã¿åãããã³æžã蟌ã¿çšã«ã¢ãã ã³ãã³ãããŒããéã
- $ SENDPORT ã '+ <' ã $ COMMAND_PORTã éãããã '$ COMMAND_PORT'ãéããŸããïŒ$ïŒ \ n ã ;
- ïŒèªã¿åããšæžã蟌ã¿ã®ããã«ã¢ãã ã®é³å£°ããŒããéããŸã
- ïŒããŒãããã®ãªãŒãã£ãªã¹ããªãŒã ã®èªã¿åãã¯ããã®ããã°ã©ã ã§ã¯äœ¿çšãããŸãã
- ïŒãã ãããã®ã¹ã¯ãªãããçå®çªé»è©±ã«å€ããããšã劚ãããã®ã¯äœããããŸãããããšãã°ã
- $ SENDPORT_WAV ã '+ <' ã $ VOICE_PORTãéã ã ã ã '$ VOICE_PORT'ãéããŸããïŒ$ïŒ \ n ã ;
- ïŒãµãã¹ã¯ã©ã€ããŒã«é¢ããããŒã¿ãå«ããã¡ã€ã«list.01.plãå«ããŸã
- ç§ã® @user_list = do 'list.01.pl' ;
- ïŒ2ã€ã®ãã©ã¡ãŒã¿ãŒãéä¿¡ããåŒã³åºãé¢æ°ãåŒã³åºããŸãã
- ïŒ1-ãã€ã¹ã¡ãã»ãŒãžãã¡ã€ã«å
- ïŒ2-ãµãã¹ã¯ã©ã€ããŒããŒã¿é å
- call_list ïŒ "test.voice.raw" ã \ @user_list ïŒ ;
- ïŒåŒã³åºãã®æåŸã«ãéããŠãããã¹ãŠã®ãã¡ã€ã«/ããŒããéããŸã
- exit_call ïŒ ïŒ ;
- ïŒãã®é¢æ°ã¯ãªã¹ãäžã®ãµãã¹ã¯ã©ã€ããŒãåŒã³åºããŸã
- sub call_list {
- ïŒé³å£°ã¡ãã»ãŒãžã§ãã¡ã€ã«åãååŸ
- ç§ã® $ l_file = shift ;
- ïŒè³Œèªè ã«é¢ããããŒã¿ãå«ããªã¹ããžã®ãªã³ã¯ãååŸ
- ç§ã® $ l_list = shift ;
- ïŒé³å£°ã¡ãã»ãŒãžã§ãã¡ã€ã«ããããŒã¿ãããŒã
- ç§ã® $ l_voice = load_voice ïŒ $ l_file ïŒ ;
- ïŒãã®ãµã€ã¯ã«ã¯ããµãã¹ã¯ã©ã€ããŒã®ãªã¹ããå®è¡ããŸã
- ïŒãã€ã€ã«ããããšãã
- foreach $ l_info ïŒ @ { $ l_list } ïŒ {
- ïŒå å ¥è ã«ãã€ã€ã«ããæ©èœãåŒã³åºã
- ç§ã® $ l_msg = call_one ïŒ $ l_info ã $ l_voice ïŒ ;
- ïŒåä¿¡ããã¡ãã»ãŒãžã衚瀺ãã
- print $ l_msg ;
- ïŒæ¬¡ã®äººã«é»è©±ããå
- ïŒ3ç§åŸ ã¡ãŸãã
- ç¡ç 3 ;
- }
- }
- ïŒãã®é¢æ°ã¯ãæå®ãããçªå·ã®åŒã³åºããè©Šã¿ãŸã
- ïŒããã³æåããå Žå-é³å£°ã¡ãã»ãŒãžããããŒããã£ã¹ãããŸã
- sub call_one {
- ç§ã® $ l_info = shift ; ïŒçŸåšã®ãµãã¹ã¯ã©ã€ãããŒã¿ã䜿çšããããã·ã¥
- ç§ã® $ l_bufer = shift ; ïŒããããŒã¡ãã»ãŒãžã®320ãã€ããã£ã³ã¯ã®é å
- ïŒãã®ã³ãã³ãã«ã¯ãã¢ãã ã®é³å£°ã¢ãŒããå«ãŸããŸã
- ïŒäžåºŠæå¹ã«ãããšãåé€/å枬å®ã§ããŸã
- ïŒãã®ã³ãã³ãã ã¢ãã ã¯ç¶æ ãèšæ¶ããŸãã
- #at_sendïŒ 'AT ^ CVOICE = 0'ïŒ;
- ïŒã¢ãã ã«çªå·ãåŒã³åºã$ l_info-> {phone}
- ïŒã¢ãã ããã®å¿çãæåŸ ïŒ
- ïŒOK-æ£åžžã«ãã€ã€ã«ãããŸãã
- ïŒNO CARRIER-ã»ã«ã©ãŒãããã¯ãŒã¯ãžã®æ¥ç¶ãªã
- my $ l_rec = at_send ïŒ "ATD $ l_info-> {phone};" ã qr / ïŒ OK | NO CARRIER ïŒ / ïŒ ;
- ïŒãã€ã€ã«ã¢ãããçºçããªãã£ãå Žåãé¢æ°ãçµäºããŠå¯Ÿå¿ããã¡ãã»ãŒãžãè¿ããŸã
- return "賌èªè $ l_info-> {name} [$ l_info-> {phone}]éç¥ãªãããããã¯ãŒã¯ãªã\ n " if $ l_rec eq 'NO CARRIER' ;
- ïŒå å ¥è ãé»è©±ã«åºããšããæåŸ ãã
- ïŒCONNïŒ....-å å ¥è ãé»è©±ãåããŸãã
- ïŒCENDïŒ....-ãµãã¹ã¯ã©ã€ããŒãå©çšã§ããªããé話äžããŸãã¯é話ãåæãã
- $ l_rec = at_rec ïŒ qr / \ ^ïŒCONN \ïŒ1 \ã0 | CEND \ :) / ïŒ ;
- ïŒå å ¥è ãé»è©±ã«åºãªãå Žåãæ©èœãçµäºããŠå¯Ÿå¿ããã¡ãã»ãŒãžãè¿ã
- return "賌èªè $ l_info-> {åå} [$ l_info-> {phone}]ã¯éç¥ãããŸãããã¢ã¯ã»ã¹äžå¯ãŸãã¯ãªã»ãã\ n " if $ l_rec eq 'CENDïŒ' ;
- ïŒã¢ãã ãé³å£°åä¿¡/éä¿¡ã¢ãŒãã«åãæ¿ããŸã
- ïŒOK-åãæ¿ãã¯æåããŸãã
- ïŒãšã©ãŒ-åãæ¿ãã«å€±æããŸãã
- ïŒCENDïŒ....-ãµãã¹ã¯ã©ã€ããŒãå©çšã§ããªããé話äžããŸãã¯é話ãåæãã
- $ l_rec = at_send ïŒ 'AT ^ DDSETEX = 2' ã qr / ïŒ OK | ERROR | CEND \ :) / ïŒ ;
- ïŒé³å£°ã¢ãŒããžã®åãæ¿ãã«å€±æããå ŽåããŸãã¯ãµãã¹ã¯ã©ã€ããŒãçºçããªãã£ãå Žå
- ïŒãã³ãã»ãã-é¢æ°ãçµäºãã察å¿ããã¡ãã»ãŒãžãè¿ã
- return "賌èªè $ l_info-> {name} [$ l_info-> {phone}]éç¥ãªããã¢ã¯ã»ã¹äžå¯ãŸãã¯ãªã»ãã\ n " if $ l_rec ne 'OK' ;
- ïŒããã«çããå Žåãé話ã確ç«ãããŠãããå å ¥è ãé»è©±ã«åºãããšãæå³ããŸã
- ïŒã¢ãã ãžã®é³å£°ã¯ã0.02ç§ããšã«320ãã€ãã®éšåã§éä¿¡ãããå¿ èŠããããŸã
- ïŒãµãŒãã¹å€æ°ãèšå®ããŸã$ | ãŠãããããšã«ãããã¯ãããã¡ãªã³ã°ãç¡å¹ã«ããŸãã
- ïŒãã®ããã«ããŠãããŒã¿ã¯ããã«ãµãŠã³ãããŒãã«éä¿¡ãããŸãã
- $ | = 1 ;
- ïŒé³å£°ã¡ãã»ãŒãžã®320ãã€ããã£ã³ã¯ã«ãããããã¡ã«ãŒã
- foreach my $ c ïŒ @ { $ l_bufer } ïŒ {
- ïŒæ¬¡ã®ããŒã¹ãã¢ãã ã®é³å£°ããŒãã«èšé²ããŸã
- syswrite $ SENDPORT_WAV ã $ c ã 320 ;
- ïŒãµã€ã¯ã«ãç¶è¡ããåã«0.02ç§åŸ æ©ããŸã
- ç¡ç ïŒ 0.02 ïŒ ;
- }
- ïŒå話åšã眮ããŸãã
- at_send ïŒ 'AT + CHUP' ïŒ ;
- ïŒæåããéç¥ã«é¢ããã¡ãã»ãŒãžãè¿ããŸãã
- return "賌èªè $ l_info-> {name} [$ l_info-> {phone}]æåéç¥\ n " ;
- }
- ïŒãã®é¢æ°ã¯ãé³å£°ã¡ãã»ãŒãžã320ãã€ãã®æçã®é åã«ããŒãããŸã
- ïŒ1ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸã-ãã¡ã€ã«å
- ïŒãªãŒãã£ãªããŒã¿åœ¢åŒ-pcmãmonoã8000ãã«ãã16ãããã眲åãã
- sub load_voice {
- ç§ã® $ l_file_name = shift ;
- my $ l_fh = new IO :: ãã¡ã€ã« "<$ l_file_name" ãŸã㯠die "$ l_file_nameãéããŸããïŒ$ïŒ" ;
- binmode ïŒ $ l_fh ïŒ ;
- ç§ã® @l_bufer = ïŒ ïŒ ;
- while ïŒ read ïŒ $ l_fh ã $ l_bufer [ $ i ] ã 320 ïŒ ïŒ { $ i ++; }
- close $ l_fh ;
- return \ @l_bufer ;
- }
- ïŒãã®é¢æ°ã¯ãã³ãã³ããã¢ãã ã³ãã³ãããŒãã«éä¿¡ããŸã
- ïŒæ£èŠè¡šçŸã§ç€ºãããå¿çãåŸ ã€
- ïŒ2ã€ã®ãã©ã¡ãŒã¿ãŒãåããŸãïŒ
- ïŒ1-ããŒã
- ïŒ2-äºæ³ãããåçã®ãªãã·ã§ã³ãèšè¿°ããæ£èŠè¡šçŸïŒããã©ã«ãã¯OKïŒ
- sub at_send {
- ç§ã® $ l_cmd = shift ;
- ç§ã® $ l_rx = ã·ãã || qr /ïŒOKïŒ/ ;
- print $ SENDPORT "$ l_cmd \ r " ;
- print "SENDïŒ[$ l_cmd] \ n " if $ VERBOSE ;
- return at_rec ïŒ $ l_rx ïŒ ;
- }
- ïŒãã®é¢æ°ã¯ãã¢ãã ããã®ã¢ãã å¿çãæåŸ ããŸã
- ïŒ1ã€ã®ãã©ã¡ãŒã¿ãŒãåãåã-äºæ³ãããåçã®ãªãã·ã§ã³ã説æããæ£èŠè¡šçŸïŒããã©ã«ãã¯OKïŒ
- sub at_rec {
- ç§ã® $ l_rx = ã·ãã || qr / OK / ;
- ç§ã® $ recive = '' ;
- while ïŒ ïŒ ïŒ $ recive =ã $ l_rx ïŒ ïŒ {
- $ recive = < $ SENDPORT >;
- $ recive = ãs / [ \ n \ r ] + // msg ;
- print "RECIVEïŒ[$ recive] \ n " if $ VERBOSE && $ recive ;
- }
- $ recive =ã $ l_rx ;
- print "END RECIVEïŒ[$ recive] [$ 1] [$ l_rx] \ n " if $ VERBOSE ;
- ãªã¿ãŒã³ $ 1 ;
- }
- ïŒãã®é¢æ°ã¯ã以åã«éããã¢ãã ããŒããéããŸã
- sub exit_call {
- å°å· "éç¥ãçµäºããŸãã\ n " ;
- $ SENDPORT_WAVãéã ãŸãã
- at_send ïŒ 'AT + CHUP' ïŒ ;
- $ SENDPORTãéã ãŸãã
- }
list.01.plãæ€èšããŠãã ãã
ïŒãµãã¹ã¯ã©ã€ããŒã®ãªã¹ãã
ïŒããã¯ãåãšã³ããªã«å«ãŸããããã·ã¥é åã®é åã§ã
ïŒå å ¥è ããŒã¿ïŒ
ïŒé»è©±-å å ¥è ã®é»è©±
ïŒname-ãµãã¹ã¯ã©ã€ããŒã®åå
ïŒå å ¥è ã«é¢ããä»ã®ããŒã¿ãä¿åããããšãå¯èœã§ã
ïŒ
{é»è©±=> '+79111234567' ãåå=> 'Petrov Petr Petrovich' } ã
{é»è©±=> '+79117654321' ãåå=> 'Vasilyev Vasily Vasilyevich' }
ïŒ ;
test.voice.rawãæ€èšããŠãã ãã
ãã®ãã¡ã€ã«ãäœæããããã«ãåçã«ç€ºãããã«AudacityãªãŒãã£ãªãšãã£ã¿ãŒã䜿çšããŸããã





ãŸããè¿œå ã®ãã¡ã€ã«cc_cause.plããã³end_status.plãæäŸããŸãã ãããã¯ãã¹ã¯ãªããã®æ瀺ãããããŒãžã§ã³ã§ã¯äœ¿çšãããŸããããæ¹åããå Žåã«åœ¹ç«ã¡ãŸãã
cc_cause.pl
ïŒåæåå ïŒccïŒã³ãŒã
ïŒè±èªhttp://www.eversoft.net/dcc.html
ïŒãã·ã¢èªhttp://ru.wikipedia.org/wiki/Q.931
ïŒHuaweiã®ãã
ïŒHUAWEI CDMAããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
ïŒ "http://www.letswireless.com.cn/asp_bin/downfile/2009929121443234.pdf"
ïŒ
ïŒHUAWEI UMTSããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
ïŒ "http://www.net139.com/UploadFile/menu/HUAWEI%20UMTS%20Datacard%20Modem%20AT%20Command%20Interface%20Specification_V2.3.pdf"
ïŒ
'1' => 'UNASSIGNED_CAUSE' ã
'3' => 'NO_ROUTE_TO_DEST' ã
'6' => 'CHANNEL_UNACCEPTABLE' ã
'8' => 'OPERATOR_DETERMINED_BARRING' ã
'16' => 'NORMAL_CALL_CLEARING' ã
'17' => 'USER_BUSY' ã
'18' => 'NO_USER_RESPONDING' ã
'19' => 'USER_ALERTING_NO_ANSWER' ã
'21' => 'CALL_REJECTED' ã
'22' => 'NUMBER_CHANGED' ã
'26' => 'NON_SELECTED_USER_CLEARING' ã
'27' => 'DESTINATION_OUT_OF_ORDER' ã
'28' => 'INVALID_NUMBER_FORMAT' ã
'29' => 'FACILITY_REJECTED' ã
'30' => 'RESPONSE_TO_STATUS_ENQUIRY' ã
'31' => 'NORMAL_UNSPECIFIED' ã
'34' => 'NO_CIRCUIT_CHANNEL_AVAILABLE' ã
'38' => 'NETWORK_OUT_OF_ORDER' ã
'41' => 'TEMPORARY_FAILURE' ã
'42' => 'SWITCHING_EQUIPMENT_CONGESTION' ã
'43' => 'ACCESS_INFORMATION_DISCARDED' ã
'44' => 'REQUESTED_CIRCUIT_CHANNEL_NOT_AVAILABLE' ã
'47' => 'RESOURCES_UNAVAILABLE_UNSPECIFIED' ã
'49' => 'QUALITY_OF_SERVICE_UNAVAILABLE' ã
'50' => 'REQUESTED_FACILITY_NOT_SUBSCRIBED' ã
'55' => 'INCOMING_CALL_BARRED_WITHIN_CUG' ã
'57' => 'BEARER_CAPABILITY_NOT_AUTHORISED' ã
'58' => 'BEARER_CAPABILITY_NOT_PRESENTLY_AVAILABLE' ã
'63' => 'SERVICE_OR_OPTION_NOT_AVAILABLE' ã
'65' => 'BEARER_SERVICE_NOT_IMPLEMENTED' ã
'68' => 'ACM_GEQ_ACMMAX' ã
'69' => 'REQUESTED_FACILITY_NOT_IMPLEMENTED' ã
'70' => 'ONLY_RESTRICTED_DIGITAL_INFO_BC_AVAILABLE' ã
'79' => 'SERVICE_OR_OPTION_NOT_IMPLEMENTED' ã
'81' => 'INVALID_TRANSACTION_ID_VALUE' ã
'87' => 'USER_NOT_MEMBER_OF_CUG' ã
'88' => 'INCOMPATIBLE_DESTINATION' ã
'91' => 'INVALID_TRANSIT_NETWORK_SELECTION' ã
'95' => 'SEMANTICALLY_INCORRECT_MESSAGE' ã
'96' => 'INVALID_MANDATORY_INFORMATION' ã
'97' => 'MESSAGE_TYPE_NON_EXISTENT' ã
'98' => 'MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROT_STATE' ã
'99' => 'IE_NON_EXISTENT_OR_NOT_IMPLEMENTED' ã
'100' => 'CONDITIONAL_IE_ERROR' ã
'101' => 'MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE' ã
'102' => 'RECOVERY_ON_TIMER_EXPIRY' ã
'111' => 'PROTOCOL_ERROR_UNSPECIFIED' ã
'127' => 'INTERWORKING_UNSPECIFIED' ã
'160' => 'REJ_UNSPECIFIED' ã
'161' => 'AS_REJ_RR_REL_IND' ã
'162' => 'AS_REJ_RR_RANDOM_ACCESS_FAILURE' ã
'163' => 'AS_REJ_RRC_REL_IND' ã
'164' => 'AS_REJ_RRC_CLOSE_SESSION_IND' ã
'165' => 'AS_REJ_RRC_OPEN_SESSION_FAILURE' ã
'166' => 'AS_REJ_LOW_LEVEL_FAIL' ã
'167' => 'AS_REJ_LOW_LEVEL_FAIL_REDIAL_NOT_ALLOWD' ã
'168' => 'MM_REJ_INVALID_SIM' ã
'169' => 'MM_REJ_NO_SERVICE' ã
'170' => 'MM_REJ_TIMER_T3230_EXP' ã
'171' => 'MM_REJ_NO_CELL_AVAILABLE' ã
'172' => 'MM_REJ_WRONG_STATE' ã
'173' => 'MM_REJ_ACCESS_CLASS_BLOCKED' ã
'174' => 'ABORT_MSG_RECEIVED' ã
'175' => 'OTHER_CAUSE' ã
'176' => 'CNM_REJ_TIMER_T303_EXP' ã
'177' => 'CNM_REJ_NO_RESOURCES' ã
'178' => 'CNM_MM_REL_PENDING' ã
'179' => 'CNM_INVALID_USER_DATA'
ïŒ ;
end_status.pl
ïŒé話çµäºåå ã³ãŒã
ïŒHuaweiã®ãã
ïŒ
ïŒHUAWEI CDMAããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
ïŒ "http://www.letswireless.com.cn/asp_bin/downfile/2009929121443234.pdf"
ïŒ
ïŒHUAWEI UMTSããŒã¿ã«ãŒãã¢ãã ATã³ãã³ãã€ã³ã¿ãŒãã§ã€ã¹ä»æ§
ïŒ "http://www.net139.com/UploadFile/menu/HUAWEI%20UMTS%20Datacard%20Modem%20AT%20Command%20Interface%20Specification_V2.3.pdf"
ïŒ
'0' => 'ããŒãã¯ãªãã©ã€ã³ã§ãã' ã
'21' => 'ããŒãã¯äœ¿çšã§ããŸããã' ã
'22' => 'é話ã¯æ£åžžã«çµäºããŸãã ã
'23' => 'BSã«ããé話ãäžæãããŸããã ã
ã24ã => ãé話äžã«BSã¬ã³ãŒããåä¿¡ããŸãããã ã
'25' => 'BSã¯ã³ãŒã«ããªãªãŒã¹ããŸãã ã
'26' => 'BSã¯çŸåšã®SOãµãŒãã¹ãæåŠããŸãã ã
'27' => 'BSåŒã³åºãããããŸãã ã
'28' => 'BSããã¢ã©ãŒãåæ¢ãåä¿¡ããŸããã ã
'29' => 'ã¯ã©ã€ã¢ã³ããšã³ãã«ãã£ãŠã³ãŒã«ãæ£åžžã«çµäºããŸãã ã
'30' => 'çµäºã¢ã¯ãã£ããŒã·ã§ã³ãåä¿¡-OTASPã³ãŒã«ã ã
'31' => 'MCã¯é話éå§ãŸãã¯é話ãçµäºããŸãã ã
'34' => 'RUIMã¯å©çšã§ããŸããã' ã
'99' => 'NDSSãšã©ãŒã ã
'100' => 'rxdäžäœå±€ããã®çç±ãcc_causeã確èª' ã
'101' => 'MSãã³ãŒã«ãéå§ããåŸããããã¯ãŒã¯ãå¿çããŸããã ã
'102' => 'MSã¯çä¿¡ã³ãŒã«ãæåŠããŸãã ã
'103' => 'ãããã¹ã«ãŒããã»ã¹äžã«ã³ãŒã«ãæåŠãããŸããã ã
'104' => 'ãªãªãŒã¹ã¯ã詳现ã«ã€ããŠã¯ãã§ãã¯ããŠãã ãã' ã
'105' => 'é»è©±æéã䜿ãæããããŸããã ã
'106' => 'MSã¯ãµãŒãã¹ãåæ¢ããŠããŸã'
ïŒ ;
çµè«ãšããŠã
ãã®ããŒãžã§ã³ã®é³å£°éç¥ã¹ã¯ãªããã¯ãå®å šã§æ£ç¢ºãªãµãããããã®ã§ã¯ãããŸããããåãªããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ãããçå£ã«äœ¿çšããããã«æ¹åããå¿ èŠããããŸãã CENDç¶æ ã®ããæ·±å»ãªåŠçãè¿œå ããŠãåããŠéç¥ããããšãã§ããªãã£ãå Žåã«å å ¥è ã«åãã€ã€ã«ããããã®æ¡ä»¶ãå®è£ ããå¿ èŠããããŸãã ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ããµãã¹ã¯ã©ã€ããªã¹ãã®ãšãã£ã¿ãã¬ããŒãçæãªã©ãå«ãWebã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããšãã§ããŸãã
ãã®èšäºãããªãã«ãšã£ãŠéèŠãããã圹ã«ç«ã€ããšãé¡ã£ãŠããŸãããããŠãç§ã¯èå³æ·±ãæçšãªèšäºãæçš¿ãç¶ããã€ããã§ãã