èæ¯å€§èŠæš¡ãªéçºäŒç€Ÿã§ã¯ãé
ããæ©ãããé»è©±äº€æã®æ©èœãæ¡åŒµããåŸæ¥ã®é»è©±ããIPã«ç§»è¡ãããšããåé¡ãçããŸãã
2011幎ã®é ãæ¥ã«ãåœç€Ÿã¯å€éšãšå
éšã®åç·ãåžžã«æ¡åŒµããå¿
èŠããããå€ãPanasonic KX-TA624ã®ããŒãæ°ãéçã«èšå®ãããæ¡åŒµã§ããªãã£ãããããã®ãããªåé¡ã«çŽé¢ããŸããã ä»ã®éœåžã«ãªãã£ã¹ãéèšããä»ã®éœåžã«çµ±äžããã顧客ãµãŒãã¹ãå°å
¥ããããšãã質çãªå€åãä¿ããŸããã
åç
§æ¡ä»¶æçµè£œåã«ã¯æ¬¡ã®ç¹æ§ãå¿
èŠã§ãã
1ïŒå€æ°ïŒãã®å Žåã¯å°ãªããšã100ïŒã®å€éšããã³å
éšåç·ããããæ¡åŒµã®æºåãã§ããŠããã
2ïŒå¶æ¥æéäžã«ãŠãŒã¶ãŒã«æšæ¶ãã誰ãé
眮ãããŠããªãå€åæéå€ã«é»è©±ããããšãå ±åã§ããã
3ïŒå¿çããªã/é話äž/å©çšäžå¯ã®å Žåã®ã³ãŒã«è»¢éã¿ã€ã ã¢ãŠããåå¥ã«èšå®ããå¿
èŠããããŸãã
4ïŒãã¥ãŒãæäŸããå¿
èŠããããŸãã ãã¥ãŒ-çªå·ã®ã°ã«ãŒããç¹å®ã®ã«ãŒã«ã«åŸã£ãŠçºçããã³ãŒã«ã®ååžã
5ïŒã¡ãã»ãŒãžãã°ïŒããã¹ããšé³å£°ã®äž¡æ¹ïŒãèšé²ããŸãã
6ïŒå€éšã³ãŒã«ãžã®æš©å©ã®åé
ã«ã€ããŠæè»ãªããªã·ãŒãæã£ãŠããã å
ç·çªå·ã®ã¿ãåŒã³åºãããšãã§ãããŠãŒã¶ãŒãæäŸããå¿
èŠããããŸãã éœåžçªå·ãžã ä»»æã®çªå·ã«ã
7ïŒæå»ã«å¿ããŠã1ã€ãŸãã¯å¥ã®çªå·ã«é»è©±ããŸãã
æªãçµéšæåã®éžæã¯Planet ipx-1900ã«èœã¡ãŸããã 仿§ã¯ããã«ãããŸãïŒ
www.planet.com.ru/en/product/product_keyf.php?id=18500ãšãããããµããŒãã宣èšãããŠããŸãïŒ
â¢èªåã€ã³ãã©ãŒããŒïŒAAïŒ
â¢ã€ã³ã¿ã©ã¯ãã£ãé³å£°å¿çïŒIVRïŒ
â¢é話詳现ã¬ããŒãïŒCDRïŒ
å®éã«ã¯ããããã®ãã©ã¡ãŒã¿ãŒã¯ããããæ©èœããŸããã Planetã®ãµããŒãã¯è³ªåãç¡èŠããŸããã æšæºçãªææ®µã§ããã«8800ã®éãã€ããããšã¯äžå¯èœã§ããã
ãã£ãšæ·±ãéžæããªããã°ãªããŸããã§ããã ãã®PBXã«ã¯ãcomããŒããštelnetããããæ¥ç¶ãããšãã°ã€ã³ãšãã¹ã¯ãŒããèŠæ±ãããŸãã Planetã®æè¡ãµããŒãã¯ããã°ã€ã³ã®è©³çŽ°ã®æäŸãæåŠããŸãã...ããæ£ç¢ºã«ã¯ããªã¯ãšã¹ããç¡èŠããŸããã ããã€ã¹ã®ãã¡ãŒã ãŠã§ã¢ã®ããŒãžã¯æ¬¡ã®å Žæã«ãããŸãã
planet.com.ru/en/support/download2.php?id=18500&file_type=65&prod_model=IPX-1900ãã¡ãŒã ãŠã§ã¢ã¯ã¢ãŒã«ã€ãã«éããªãããšã倿ããŸããã
$ mkdir untar && cd untar && tar xvf ../FW-IPX1900_1.16.8.dat rootfs.jffs2 vmImage start_install.sh aimage.tar.gz
æãè峿·±ãã®ã¯start_install.shã§ããããã®ã¹ã¯ãªããã¯ããã¡ãŒã ãŠã§ã¢ãããã€ã¹ã«ããŠã³ããŒãããçŽåŸã«å®è¡ãããŸãã è¡ã®çŽåŸïŒ
#!/bin/sh
次ã®è¡ã远å ããŸãã
useradd -groot -proot toor
ãã¹ãŠãã¢ãŒã«ã€ãã«æ»ãããã¡ãŒã ãŠã§ã¢ãã¹ããŒã·ã§ã³ã«ããŠã³ããŒãããŸãã
ãã¹ãŠãããŸãããã°ãcom-portãŸãã¯telnetçµç±ã§ã¹ããŒã·ã§ã³ã«ãã°ã€ã³ã§ããŸãã
sterAsterix 1.4ãæèŒããClinuxãå
éšã§çºèŠãããŸãã
ãããŠãã¹ããŒã·ã§ã³ã®çšŒåç¶æ
ãžã®ããŒãã³ã°ãå§ãŸããŸããã 倿Žã®ãªã¹ããæçš¿ããããšã¯ãããŸãããããã¯ãä»ã§ã¯åãè¿ãã®ã€ããªãã»ã©å€±ãããŠããããã§ãã
ã¹ããŒã·ã§ã³ã®ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ãããããã§ãæè¡ä»æ§ã®p.1-4ãå®è£
ããããšãã§ããŸããã ãããŠãã¹ããŒã·ã§ã³8800ã§è¿œå ããŸãã
1ïŒã¹ããŒã·ã§ã³ãšå€éšããŒãã®çµ¶ãéãªããã³ã°ã
2ïŒå€éã®æ¯æ¥ã®ã¹ããŒã·ã§ã³ã®åèµ·åã
3ïŒåèµ·ååŸãã¹ããŒã·ã§ã³ãäžæãµãŒããŒãšåæã§ããªãã£ãå Žåããããå®éã«ã¯æéãæ©èœããŠããã«ãããããããæéãæ©èœããŠããªãããšãã¯ã©ã€ã¢ã³ãã«éç¥ããŸããã
ãããããã®åœ¢åŒã§ã¯ãé»è©±ãã©ã°ã¿ã€ã ã«çŽ1幎åååšããŠããŸããã ããã«ããããããããªãŒããŒã·ããã¯ãæè¡çãªã¿ã¹ã¯ãéè¡ãããšãã倢ãå®çŸããããšãããŒãã«ãæè¡ãµããŒãããããã¯ããç¶ãïŒã¯ããæè¡ãµããŒãã§ããïŒãæè¡ãµããŒããçãŸããŸããã
éææããéåžžã®ãµãŒããŒãžã®ç§»è¡æã«ãèªç±ã«äœ¿çšã§ããŸããïŒ
1ïŒè€æ°ã®ææata-150sé³å£°ã²ãŒããŠã§ã€ïŒ2 fxsããŒãïŒ;
2ïŒlinksys spa-3000ïŒ1fxo + 1 fxs portïŒ-2å;
3ïŒã¢ããã°é»è©±ã®æïŒPanasonicã¬ã¬ã·ãŒïŒ;
4ïŒVoIPé»è©±dlink-dph150sãdlink-dph150seã
5ïŒDebian OSãæèŒãããµãŒããŒã
6ïŒãµãŒãžãããã¯ã¿ãŒããã€ã¹ããã¢ãã¹ã€ãã:)
éã®äž»èгçã¬ãã¥ãŒVoIP dlinkã¯ããŸãæ©èœããŸãã åçµã¯ã»ãšãã©ãããŸããã çµå©ããããã€ãã®ã¢ãã«ããããŸãããããããã¯çãããªãæ°ãããã®ã«çœ®ãæããããŸããã
Linksysã¯æªããããŸããã æã
ããªãŒãºãçºçããé³å£°ã²ãŒããŠã§ã€èªäœã§ã¯ãªãããã®äžã®FXOããŒãããã³ã°ããŸãã æ®å¿µãªãããããã¯é¡§å®¢ã®ãªã¯ãšã¹ãã§ã®ã¿æ€åºãããŸãã
Planet ata-150s-æªãã é »ç¹ã«ããªãŒãºãçºçãã宿çã«ãã³ãã»ããã«ãã€ãºããããŸãã åèµ·åã®ã¿ã圹ç«ã¡ãŸãã 圌ãã¯ããã¯ã§è³Œå
¥ããã-ã ããããªãã¯äœã§äœæ¥ããå¿
èŠããããŸãã
ã¢ã¹ã¿ãªã¹ã¯ãã€ã³ã¹ããŒã«ããæ®å¿µãªãããdebianã®ã¢ã¹ã¿ãªã¹ã¯ã€ã³ã¹ããŒã«ãã°ã¯ä¿åãããŸããã§ããã ãããã£ãŠãUbuntu 12.04ã®ã€ã³ã¹ããŒã«æé ã¯ãã®èšäºçšã«ç¿»èš³ãããŸãã æŠããŠãã»ãšãã©éãã¯ãããŸãããããšãã°ãAsterisk 1.8ã¯ã¡ã€ã³ã®debianãªããžããªã«ã¯å«ãŸããŠããŸããããããã¯ããŒãã«ã¯å«ãŸããŠããŸãã
äœæ¥ã«ã¯ã次ã®ããã±ãŒãžã䜿çšããŸãã
1ã¢ã¹ã¿ãªã¹ã¯-ã¢ã¹ã¿ãªã¹ã¯1.8
2 libasterisk-agi-perl-perlçšã®AGIã¢ãžã¥ãŒã«ã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
3 asterisk-mysql-ããã¹ããã¡ã€ã«ã§ã¯ãªãããŒã¿ããŒã¹ã«çµ±èšãä¿åã§ããã¢ã¹ã¿ãªã¹ã¯æ¡åŒµ
$ sudo aptitude install asterisk libasterisk-agi-perl asterisk-mysql mysql-server
é話履æŽã®èšå®1ïŒããŒã¿ããŒã¹ã®ã«ãŒããããæ°ããããŒã¿ããŒã¹ãšãŠãŒã¶ãŒãäœæããŸãã
CREATE DATABASE astr; GRANT ALL PRIVILEGES ON astr.* TO 'asterisk'@'localhost' IDENTIFIED BY 'super-pass' WITH GRANT OPTION; EXIT;
2ïŒäœæãããŠãŒã¶ãŒã®äžã«ç§»åããŸãã
$ mysql -uasterisk -psuper-pass astr
3ïŒããŒãã«ãäœæããŸãã
CREATE TABLE `cdr` ( `calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `clid` varchar(80) NOT NULL DEFAULT '', `src` varchar(80) NOT NULL DEFAULT '', `dst` varchar(80) NOT NULL DEFAULT '', `dcontext` varchar(80) NOT NULL DEFAULT '', `channel` varchar(80) NOT NULL DEFAULT '', `dstchannel` varchar(80) NOT NULL DEFAULT '', `lastapp` varchar(80) NOT NULL DEFAULT '', `lastdata` varchar(80) NOT NULL DEFAULT '', `duration` int(11) NOT NULL DEFAULT '0', `billsec` int(11) NOT NULL DEFAULT '0', `disposition` varchar(45) NOT NULL DEFAULT '', `amaflags` int(11) NOT NULL DEFAULT '0', `accountcode` varchar(20) NOT NULL DEFAULT '', `userfield` varchar(255) NOT NULL DEFAULT '', KEY `calldate` (`calldate`), KEY `dst` (`dst`), KEY `accountcode` (`accountcode`) ); EXIT;
4ïŒã¢ã¹ã¿ãªã¹ã¯èšå®ãã£ã¬ã¯ããªã«ç§»åãïŒãã以éã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ã¹ãŒããŒãŠãŒã¶ãŒã«ä»£ãã£ãŠå®è¡ããå¿
èŠããããŸãïŒã念ã®ããæ¬¡ã®ãã¹ãŠã®ã³ã³ãã³ãã®ã³ããŒãäœæããŸãã
ç§ãã¡ãšäžç·ã«ããã¯ãã©ãŒã ãæã£ãŠããŸãïŒ
[global] hostname=localhost dbname=astr table=cdr password=super-pass user=asterisk [columns] alias start => calldate
cdr.confæ§æã¯å€æŽãããŠããŸããã
çºä¿¡ãŠãŒã¶ãŒãšã³ã³ããã¹ããŠãŒã¶ãŒããã®çºä¿¡é話ã«ã¯ã4ã€ã®ã³ã³ããã¹ãããããŸãã
1 phone_int-ããã©ã«ãå€ã 3æ¡ã®å
éšçªå·ã®ã¿ã«é»è©±ããããããšãã§ãããŠãŒã¶ãŒã
2 phone_local-ãŠãŒã¶ãŒã¯7æ¡ã®éœåžå
çªå·ãåŒã³åºãããšãã§ããŸãã
3 phone_long_d-ãããã®ãŠãŒã¶ãŒã¯åœå
ã§ã®é話ãèš±å¯ãããŠããŸãã
4 phone_too_long_d-åœéé»è©±ã
ã³ã³ããã¹ãã¯äºãã«å«ãŸããŠããŸãã phone_too_long_dãŠãŒã¶ãŒã¯ãåŸæ¥å¡ã®å
éšçªå·ãšåžå
ã®äž¡æ¹ã«é»è©±ããããããšãã§ããŸãã
ç¶è¡ïŒ
1ïŒsip.confãããã€ãã«åããŸãããïŒ
sip_general.conf-ã¢ã¹ã¿ãªã¹ã¯ã®ã¡ã€ã³èšå®ã
sip_internal.conf-ãŠãŒã¶ãŒã®å
éšçªå·ã
sip_trunk.conf-å€éšåç·ã
2ïŒsip_internal.confã«3ã€ã®æ°å€ãèšå®ããäŸïŒ
[defaults](!) type = friend qualify = yes ; ; , context = phone_int canreinvite = no host = dynamic callgroup = 1 pickupgroup = 1 [101](defaults) secret = pass_for_reception callerid = "Sveta"<101> context = phone_long_d [112](defaults) secret = pass_for_artur callerid = âArtur"<112> context = phone_local [106](defaults) secret = pass_for_fax callerid = "Fax"<106> context = phone_too_long_d [495](defaults) secret = pass_msk callerid = "MSK"<495>
ãŠãŒã¶ãŒ101ã¯ããã·ã¢å
ã§ã®åŒã³åºããèš±å¯ãããŠããŸãïŒã³ã³ããã¹ã= phone_long_dïŒã ãŠãŒã¶ãŒ112ïŒphone_localïŒã¯åžå
ã§åŒã³åºãããšãã§ããŸãã 106ã¯ã©ãã«ã§ãé»è©±ã§ããŸãã ãŠãŒã¶ãŒ495ã¯ãå
éšçªå·ãžã®åŒã³åºãã®ã¿ãèš±å¯ãããŸãïŒã³ã³ããã¹ããæå®ãããŠããªãå Žåãphone_intã³ã³ããã¹ãã䜿çšãããŸãïŒã ç§å¯ãã£ãŒã«ãã¯ãèªèšŒã«äœ¿çšããããã¹ã¯ãŒãã§ãã
çä¿¡åç·ã¡ã€ã³èšå®ã®äŸïŒ
ãã©ã³ã¯ã®ã»ããã¢ããïŒ
example_numè¡ã¯ããªã¢ãŒãã¹ããŒã·ã§ã³ã§ã®èªèšŒãšç»é²ã䜿çšããŠå®äºããŸãã ãã®è¡ã«ã¯æ¬¡ã®ããã«æžãããŠããããšã«æ³šæããŠãã ããã
register = example_num:pass_for_example_num:example_num@proxyreg_time/example_num
sip_general.confã§ã
pstn_beelineè¡ã¯ç»é²ãå¿
èŠãšããŸãããå®éãããã¯linksys spa 3000ã®fxoããŒããä»ããŠæ¥ç¶ããããåå°ãè¡ã®1ã€ã§ãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
RTKã©ã€ã³-ããã§ã¯æ¿èªãç»é²ãå¿
èŠãããŸããã ã¹ããŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒãšIPïŒãã¹ããã£ãŒã«ãïŒã®ã¿ãå¿
èŠã§ãããããåŒã³åºããè¡ãããŸãã ããã¯çªå·8800ã§ããçä¿¡é»è©±ã®ã¿ãæäŸãããŸãã Rostelecomã«é¢ããŠã¯ããŠãŒã¶ãŒåã¯ã«ãŒãçªå·ã§ãã
ãã¹ãŠã®çä¿¡ã³ãŒã«ã®ã³ã³ããã¹ãã¯1-from_externalã§ãã
ãã€ã€ã«ãã©ã³ïŒãã€ã€ã«ãã©ã³ïŒ-é話ã«ãŒãã£ã³ã°PBXã®äœæ¥ã§æãè峿·±ãã®ã¯ããã€ã€ã«ãã©ã³ã§ãã ãã€ã€ã«ãã©ã³ã¯ã説æãããŠããã«ãŒã«ã«åŸã£ãŠã³ãŒã«ãã«ãŒãã£ã³ã°ããŸãã ã ããïŒ
1ïŒçºä¿¡é話ã
æååã®è§£æïŒ
exten => _0[1-79]XXXXXX, 2, Dial(SIP/${EXTEN:1}@pstn_beeline&SIP/${EXTEN:1}@example_num)
_0 [1-79] XXXXXX-ãã€ã€ã«çªå·ã®ãã¹ã¯ã 詳现ã¯ãã¡ãïŒ
voip.rus.net/tiki-index.php?page=Asterisk+Dialplan+Patterns ïŒ
0ã¯æåã«æ¥ãæ°åã§ã
[1-79]-2çªç®ã®æ°åã¯8以å€ã®ä»»æã®æ°åã§ãã ããã¯éœåžéãžã®åºå£ã§ã
XXXXXX-ä»»æã®7æ¡
Xã¯0ã9ã®ä»»æã®æ°ã«äžèŽããŸã
Zã¯1ãã9ãŸã§ã®ä»»æã®æ°ã«äžèŽããŸã
Nã¯2ãã9ãŸã§ã®ä»»æã®æ°ã«äžèŽããŸã
2-åªå
床ããã®ã¢ã¯ã·ã§ã³ã2çªç®ã«é£ç¶ããŠå®è¡ãããããšãæå³ããŸãã
ãã€ã€ã«ã¯ãæã䜿çšãããŠããã¢ã¹ã¿ãªã¹ã¯ã¢ããªã±ãŒã·ã§ã³ã®1ã€ã§ãã ç¹å®ã®åç·ãä»ããŠçªå·ãåŒã³åºãããã«èšèšãããŠããŸãã ãã®ã¢ããªã±ãŒã·ã§ã³ã®è©³çްã¯ãã¡ãïŒ
voip.rus.net/tiki-index.php?page=Asterisk+cmd+Dial ïŒ
SIP / $ {EXTENïŒ1}-äžçš®ã®æ£èŠè¡šçŸã ããšãã°ã03799039ããã€ã€ã«ãããšãçªå·3799039ããã£ãã«ã«éä¿¡ãããŸãã
@pstn_beeline-åŒã³åºããè¡ããããã£ãã«ã
ïŒSIP / $ {EXTENïŒ1} @example_num-ããŒã©ã€ã³ãããžãŒã§ãããå©çšã§ããªãå Žåã«é話ãè¡ãããå¥ã®ãã£ãã«ã
; [phone_local] include => phone_int include => out_local
phone_localã³ã³ããã¹ããååŸããã«ã¯ã2ã€ã®ã³ã³ããã¹ãïŒphone_intããã³out_localïŒãå«ããå¿
èŠããããŸãã ãã®ãããªã³ã³ããã¹ãã«æ¥ç¶ããŠãããŠãŒã¶ãŒïŒäžèšã®äŸã§ã¯ãããã¯ãŠãŒã¶ãŒ112ïŒã«ã¯ãåºå®é»è©±çªå·ãžã®åŒã³åºããèš±å¯ãããŸãã
2ïŒçä¿¡ã³ãŒã«ã¯æ¬¡ã®ããã«åŠçãããŸãã
; ========= ============== [from_external] exten => _X., 1, Macro(dial) exten => s, 1, Macro(dial) ; ========= ==============
3ïŒãã¯ã
ãã¯ãã¯åºæ¬çã«é¢æ°ã§ãã ã³ã³ããã¹ãã«å¿ããŠäœ¿çšãããã¯ãã«ãã©ã¡ãŒã¿ãŒãæž¡ãããšãã§ããŸãã æ¬¡ã®ããã«ãã¯ãã«ã¢ã¯ã»ã¹ã§ããŸãã
exten => _[1-79]XX, n, Macro(int-dial,${EXTEN})
_ [1-9] XX-ãã€ã€ã«ããçªå·ã
nã¯åªå
é äœã§ãã
ãã¯ãã¯ããã¯ãã¢ããªã±ãŒã·ã§ã³ãã®ãã®ã§ãã
int-dialã¯ãã¯ãã®ååã§ãã
$ {EXTEN}-ãã¯ãã«æž¡ããããã©ã¡ãŒã¿ãŒïŒãã®å Žåãé»è©±çªå·ïŒ
ãã¯ãã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããïŒ
voip.rus.net/tiki-index.php?page=Asterisk+cmd+Macro&highlight=Macro ïŒïŒïŒã
ãã€ã€ã«ã«äœ¿çšãããã¯ãã¯æ¬¡ã®ãšããã§ãã
; =============================== ; ; /var/lib/asterisk/agi/dial_internal.pl ; ( ) ; ; users .. asterisk [macro-int-dial] exten => s, 1, NoOp() exten => s, 2, AGI(/var/lib/asterisk/agi/dial_internal.pl, ${ARG1}) exten => s, n, Hangup() ; ( ) ; ; [phone_int] ; /var/lib/asterisk/agi/ivr.pl [macro-monitor] exten => s, 1, AGI(/var/lib/asterisk/agi/monitor.pl) ; [macro-groupe-dial] exten => s, 1, Queue(${ARG1}, rtT,,,100) ; ; - ( ) ; ( <->. ), ; - â , " [macro-dial] exten => s, 1, AGI(/var/lib/asterisk/agi/ivr.pl) exten => s, n, Hangup() ; ===============================
ã»ãšãã©ãã¹ãŠã®ã³ã³ããã¹ãã§ãAGIã¢ããªã±ãŒã·ã§ã³ã䜿çšãããŸãã ã¢ããªã±ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ããã¡ããã芧ãã ããïŒ
voip.rus.net/tiki-index.php?page=Asterisk+cmd+AGI&highlight=AGI ïŒïŒïŒã
ãã®ã¢ããªã±ãŒã·ã§ã³ã®äœ¿ç𿹿³ã«ã€ããŠ-次ã®ã»ã¯ã·ã§ã³ã
AGIãããã€ãã£ã¬ã³ãžã
次ã®ããã«æ©èœããã¡ãã¥ãŒãå®è£
ããŸãã
1ïŒé±æ«ãšé皌åæé-å¶æ¥æéå€ã«é¡§å®¢ãé»è©±ããã¡ãã»ãŒãžã ä»äºã®æéã衚æããã
2ïŒå€åæéã¯æšæ¶ã§ãã æéã«å¿ããŠãã¯ã©ã€ã¢ã³ãã
â¢ç§æžïŒã¯ã©ã€ã¢ã³ããå¶æ¥æéäžã«è»¢åããå ŽåïŒã
â¢ãã®ä»ã®å€åæéäžã®ãã¯ãã«ã«ãµããŒã
å€åæéã¯æææ¥ããéææ¥ã®9ãã21ã§ãã ãªãã£ã¹ã¯å¹³æ¥ã¯9æãã13æãŸã§ã14æãã18æãŸã§å¶æ¥ããŠããŸãïŒãªãã£ã¹ã©ã³ãã§ã¯1æãã2æãŸã§ïŒã
åé¡ã解決ããããã®ããŒã«ã
ãã®åé¡ã解決ããããã«ãAGIããŒã«ãéžæãããŸããã
AGIïŒAsterisk Gateway InterfaceïŒã¯ãä»ã®ããã°ã©ãã³ã°èšèªã䜿çšããŠã¢ã¹ã¿ãªã¹ã¯ã®æ©èœãæ¡åŒµã§ãããAsteriskã«çµã¿èŸŒãŸããå€éšã¹ã¯ãªããïŒhttpãµãŒããŒã®CGIãšåæ§ïŒãå®è¡ããæ¹æ³ã§ãã
Perlã¯éçºèšèªãšããŠéžã°ããŸãã-ããããåé¡ã解決ããããã®æ®éçãªããŒã«ãšããŠã :-)
cpanã«ã¯ãã¢ã¹ã¿ãªã¹ã¯:: AGIã¢ãžã¥ãŒã«
search.cpan.org/~jamesgol/asterisk-perl-1.03/lib/Asterisk/AGI.pmããããŸãã
é·æAGI-éçºã®å®¹æãã æè»æ§ã çæ-ãµãŒããŒã®è² è·ã倧å¹
ã«å¢å ããŸãã ã¹ã¯ãªããã¯åŒã³åºãããšã«ã³ã³ãã€ã«ããããã£ãã·ã¥ãããŸããã ã€ã³ã¿ãŒãããäžã§AGIã¯ãã°ã ãšæžããŠããŸãããç§ãã¡ã®ä»äºïŒã0.5幎ïŒã®éãããã«åé¡ã¯ãããŸããã§ããã èšç®èœåã«ãåé¡ã¯ãããŸããã
åé¡ã®è§£æ±ºçã
ããã§ãã¹ãŠã®çä¿¡ã³ãŒã«ã転éããŸãïŒåã®ã»ã¯ã·ã§ã³ãåç
§ïŒã
exten => s, 1, AGI(/var/lib/asterisk/agi/ivr.pl)
çä¿¡ã³ãŒã«ãã³ãã©ïŒ/var/lib/asterisk/agi/ivr.plïŒã¯æ¬¡ã®ããã«ãªããŸãã
use Data::Dumper; use warnings; use strict; use Asterisk::AGI; use Time::localtime; my $AGI = new Asterisk::AGI; my %input = $AGI->ReadParse();
ãã¡ã€ã«/var/lib/asterisk/agi/schedule.confã«ã¯ããäŸå€çãªãæéãã€ãŸã äŒæ¥ãççž®æ¥ãªã©ããªãã£ã¹ãéåžžã©ããæ©èœããŠããªãæéã äŸïŒ
ïŒ1-æ¥ä»ïŒday.monthïŒ
ïŒ2-ææ¥ïŒãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒïŒ
ïŒ0é皌åãŸãã¯ç©º
ïŒ1-éåžžã®åäœïŒ[9,13,18,21]ïŒãŸãã¯é
å
ïŒ2.1-ãªãã£ã¹éå§æéïŒ9ïŒ
ïŒ2.2-æŒé£ïŒ13ãã€ãŸã13ãã14ïŒ
ïŒ2.3-ãªãã£ã¹ã®ã·ã£ããããŠã³æéïŒ18ïŒ
ïŒ2.4-ãã¯ãã«ã«ãµããŒãã®å®äºæé
ïŒæ¥ä»ã¯ãŒããªãã§å
¥åãããŸãã 06.11-æ©èœããŸããã 6.11-äœå
29.12 [9,11,17,20]
12/31
12æ29æ¥[9,11,17,20]ïŒ12æ29æ¥ïŒã¯ççž®æ¥ã§ãã ãªãã£ã¹ã¯9ãã17ãŸã§éããŠããŸãã 11ãã12ãŸã§ã®æŒé£ã ãã¯ãã«ã«ãµããŒãã¯20ãŸã§æ©èœããŸãã
12/31-äŒæ¥æ¥ã
AGIã³ãŒã«ãã³ãã©ãŒãã£ã¬ã³ãžã
çªå·ãåŒã³åºããšããåŒã³åºãã¯ç¹å®ã®ã¿ã€ã ã¢ãŠã/ããžãŒ/ç¡å¿ç/å¥ã®çªå·ãžã®å©çšäžå¯ãä»ããŠãªãã€ã¬ã¯ããããå¿
èŠããããŸãïŒååãšããŠãããã¯ãã¥ãŒã®1ã€ïŒã ãã¿ã€ã ã¢ãŠãããšããã®ä»ã®æ°å€ãã¯åç倿°ã§ããæ°å€ããšã«åå¥ã«èšå®ã§ããŸãã
ããŒã«ã
æåŸã®ã»ã¯ã·ã§ã³ã®ããã«-AGIã
åé¡ã®è§£æ±ºçã
åŸæ¥å¡ã®å
éšçªå·ã¯ãmysqlããŒã¿ããŒã¹ã«ãã£ãŠusersããŒãã«ã«ä¿åãããŸãã
ããŒãã«ãäœæããŸãã
CREATE TABLE `users` ( `num` int(11) PRIMARY KEY NOT NULL, `timeout` tinyint(4) NOT NULL DEFAULT '10', `queue` int(11) DEFAULT NULL );
num-åŸæ¥å¡ã®é»è©±çªå·ã
timeout-ã³ãŒã«ã転éããããŸã§ã®ç§åäœã®æéã
queue-åŒã³åºãã転éããããã¥ãŒã®çªå·ã
çªå·ã®ãšã³ããªã远å ããŸãã
INSERT INTO `users` VALUES (101,10,300), (106,20,0), (112,20,0);
äœãèµ·ãã£ããã確èªããŠãã ããïŒ
SELECT * FROMãŠãŒã¶ãŒ;
+ ----- + --------- + ------- +
| num | ã¿ã€ã ã¢ãŠã| ãã¥ãŒ|
+ ----- + --------- + ------- +
| 101 | 10 | 300 |
| 106 | 20 | 0 |
| 112 | 20 | 0 |
+ ----- + --------- + ------- +
101ã«é»è©±ãããšã10ç§åŸã«300çªã«é»è©±ãããããŸãïŒãã®ãã¯ãã«ã«ãµããŒãçªå·ããããŸãïŒã 112ãŸãã¯106ã«é»è©±ãããããšãé話ã¯ã©ãã«ãè¡ããŸãããã20ç§ã§çµäºããŸãã
ãã³ãã©ãŒã«ã¯æ¬¡ã®ããã«ã¢ã¯ã»ã¹ã§ããŸãïŒAGIïŒ/var/lib/asterisk/agi/dial_internal.plã$ {ARG1}ïŒïŒïŒ
ãã€ã€ã«ãã©ã³ã§ã¯ïŒ
exten => _[1-9]XX, n, Macro(int-dial,${EXTEN}) [macro-int-dial] exten => s, 1, NoOp() exten => s, 2, AGI(/var/lib/asterisk/agi/dial_internal.pl, ${ARG1}) exten => s, n, Hangup()
é»è©±çªå·ã¯ãã¯ã倿°$ {EXTEN}ã«åé¡ããã$ {ARG1}ã䜿çšããŠãã³ãã©ãŒ/var/lib/asterisk/agi/dial_internal.plã«æž¡ãããŸãã
ãã³ãã©ãŒã³ãŒãïŒ
ãªãŒãã£ãªããžã¹ãã«é»è©±ãããã¹ãŠã®ã³ãŒã«ã¯ãå¶æ¥æéäžã«ã®ã¿èšé²ãããŸããAGIã¯é話é²é³ã«ã䜿çšãããŸãããããªãã§ãå®è¡ã§ããŸããããã°ãå¥ã®ãã£ã¬ã¯ããªã«é
眮ããæ¹ãã¯ããã«äŸ¿å©ã§ãããã°ãã¡ã€ã«ã®äŸïŒ./2013/03/28/20130328.150550.9033779401.wavãã€ãŸã
./year/month/day/year_month_number.hours_minutes_seconds.number_of_existing_call.wavãã¡ã€ã«åã¯ããã¹ãŠã®ãã¡ã€ã«ã1ã€ã®ãã£ã¬ã¯ããªã«é
眮ããç¹å®ã®ãã©ã¡ãŒã¿ãŒïŒé»è©±çªå·/æéãªã©ïŒã§grepã§ããããã«èšèšãããŠããŸãã ïŒãã³ãã©ãŒã³ãŒã/var/lib/asterisk/agi/monitor.plïŒ
MixMonitorã¢ããªã±ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ããã¡ãïŒwww.voip-info.org/wiki/view/MixMonitorïŒãã芧ãã ããããã¥ãŒãã¥ãŒã¯æ¯èŒçåçŽã§ãããã®æ§æã¯queues.confãšåŒã°ããŸãããã¯ãã«ã«ãµããŒãïŒ300çªïŒãšã¢ã«ãŠã³ãã£ã³ã°ïŒ301ïŒã®2è¡ããããŸãã [general] persistentmembers=yes autofill=yes autopause=no monitor-type=MixMonitor strategy=ringall ; . ringinuse=no timeout=100 retry=2 wrapuptime=0 maxlen=0 defaultrule = plus10 [301] member => SIP/105,1 member => SIP/109,1 [300] member => SIP/102,1 member => SIP/108,1
ãã¥ãŒæ©èœã®è©³çްã«ã€ããŠã¯ãwww.voip-info.org / wiki / view / Asterisk + config + queues.confãã芧ãã ãããlinksysspa-3000Taskãä»ããŠå€éšåç·ãèšå®ããŸããLinksys spa-3000ã«ã¯ã1ã€ã®fxoããŒããš1ã€ã®fxããããŸããé³å£°ã²ãŒããŠã§ã€ã«æ¥ç¶ãããŠããçªå·ïŒä»¥éãlatãšåŒã³ãŸãïŒã«é»è©±ããããå ŽåãåŒã³åºãã¯fxsããŒãã«éä¿¡ããå¿
èŠããããŸãïŒããã«FAXããããŸãïŒãåæã«ã1ïŒãªãã£ã¹ããfxoããŒãã«æ¥ç¶ãããåç·ãä»ããŠé»è©±ããããããšãã§ããã¯ãã§ãã2ïŒé話ãå¥ã®åç·ãçµç±ããå ŽåãFAXçªå·ã«åãæ¿ããŸãã3ïŒã¹ããŒã·ã§ã³ã«æ¥ç¶ãããä»»æã®åç·ãä»ããŠãã¡ãã¯ã¹ããåŒã³åºããŸãã解決çãèšç»ãå®è£
ããã«ã¯ãg.shãæ§æããå¿
èŠããããŸããæ¬¡ã®ããã«ã管çè
ãã°ã€ã³ããŒãž->詳现èšå®-> PSTNè¡ã«ç§»åããŸãïŒãããã·ïŒ10.0.0.5ïŒïŒipã¹ããŒã·ã§ã³ïŒã¢ãŠãããŠã³ããããã·ïŒ10.0.0.5ïŒïŒipã¹ããŒã·ã§ã³ïŒç»é²ïŒã¯ããŠãŒã¶ãŒIDïŒpstn_beelineãã¹ã¯ãŒãïŒpass_for_beelineïŒçºä¿¡ããã«ã¯ããã«ãã¡ã¯ã¹ã«ã¹ããŒã·ã§ã³ããã€ãã¹ããŠè¡åããŸããããã€ã€ã«ãã©ã³2ïŒïŒ<ïŒ@ gw0>ïŒPSTNçºä¿¡è
ã®ããã©ã«ãDPïŒ2ã¹ããŒã·ã§ã³ã§ã®å€éšåç·ã®æ§æã¯ãå€éšåç·ïŒpstn_beelineïŒã»ã¯ã·ã§ã³ã§èª¬æãããŠããŸãã106ãã¡ãã¯ã¹çªå·ïŒãããã·ïŒ10.0.0.5ïŒïŒIPã¹ããŒã·ã§ã³ïŒã¢ãŠãããŠã³ããããã·ïŒ10.0.0.5ïŒïŒIPã¹ããŒã·ã§ã³ïŒç»é²ïŒã¯ããŠãŒã¶ãŒIDïŒ106ãã¹ã¯ãŒãïŒpass_for_faxã¹ããŒã·ã§ã³ã§ã®å
ç·çªå·ã®èšå®ã«ã€ããŠã¯ãçºä¿¡ã³ãŒã«ã®ãŠãŒã¶ãŒãšã³ã³ããã¹ãã®ã»ã¯ã·ã§ã³ã§èª¬æããŠããŸã ïŒ106ïŒäŸ¿å©ãªã³ãã³ãã¢ã¹ã¿ãªã¹ã¯-r-ã³ãã³ãã©ã€ã³ã¢ã¹ã¿ãªã¹ã¯-rx 'sip show peers' ãžã®ã¢ã¯ã»ã¹-ã¢ã¹ã¿ãªã¹ã¯ã³ã³ãœãŒã«ãå
¥åããã«ã³ã³ãœãŒã«ã«æ¥ç¶ãŠãŒã¶ãŒã®ãªã¹ãã衚瀺-xã¹ã€ããã䜿çšãããšãæããã䜿çšããã³ãã³ããã¢ã¹ã¿ãªã¹ã¯ã³ã³ãœãŒã«ãsip reload-sip.confããã®æ
å ±ã®åèªã¿èŸŒã¿config dialplan reload- ãã€ã€ã«ãã©ã³ã®åèªã¿èŸŒã¿sip show channels-äœæããããã£ã³ãã«ã®ãªã¹ãsip set debug ip ip_peer_a_a-ç¹å®ã®ãã£ãã«ã®ãããã°ãæå¹ã«ããŸããã¹ããŒã·ã§ã³ãšãªã¢ãŒãã¹ããŒã·ã§ã³ã®éãééãããã±ããã衚瀺ããŸããã³ã¢ã»ããã®è©³çްãªãããã°3ã«äžå¯æ¬ -ãããã°ã¢ãŒããæå¹ã«ããŸãããã£ãã«äœæäžã«å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã瀺ããŸãã