ã¡ããã©1幎åã以åã®ååã¯ãéä¿¡äºæ¥è ã®VoIPãšã³ãžã³ã®å€æŽã«åå ãããšããææ¡ã§ç§ãã¡ã«é ŒããŸããã ã¿ã¹ã¯ã¯ãã¢ã«ãŠã³ããå®å šã«ããçŽããã·ã¹ãã ã®ã¹ã±ãŒãªã³ã°ã確ä¿ãã課éã·ã¹ãã ãäœæããLCRãäœæãããŠãŒã¶ãŒè²»çšãç£èŠããäŒè©±ã®æéãå¶åŸ¡ããåæãåŒã³åºãããšã§ããã 話ã¯æ²ããããšã«çµãã£ãããªããªã äŒãããããšããã§ã¯ãã·ã¹ãã ã®æ¡åŒµæ©èœã¯äœæ¥æ瀺æžã«å¯Ÿå¿ããŠããŸããã§ãããäœæ¥æ瀺æžã¯çŽã§æ£åŒåãããŠãããããªãã¬ãŒã¿ãŒã®ãããŒãžã£ãŒã®é ã«ãããããŸããã 顧客ãæ¬åœã«æ°ã«å ¥ã£ãŠããéçºãããæ©èœã«å¯ŸããŠç®¡çè ãæ¯æããããªããšããäºå®ã®ããã«ãç§ãã¡ã¯é¢ä¿ãæã¡åããŸããã ç§ãã¡ã¯NDAãšå¥çŽãæã£ãŠããªãã£ããããååãšçžè«ããåŸãéçºã®äžéšãç¡æã§å©çšããããšã«ããŸããã ããã¯äžé£ã®èšäºã«ãªããšæããŸãã ãããŠãåºæ¬çãªãã®ãšã¢ãŒããã¯ãã£ããå§ããŸãããã
å°ãªããšãäžåºŠã¯IPãã¬ãã©ããŒã«æºãã£ã管çè ã¯ãIPãã¬ãã©ããŒãµãŒãã¹ããšã³ããŠãŒã¶ãŒã«ããã€ãã®æ¹æ³ã§æäŸã§ããããšãç¥ã£ãŠããŸãã
- éä¿¡äºæ¥è ããã®éšå±ã®ã¬ã³ã¿ã«ã ãã®å ŽåããŠãŒã¶ãŒã«ã¯ãé»è©±çªå·ããçµã³ä»ãããããå人ãŠãŒã¶ãŒå/ãã¹ã¯ãŒããäžããããŸãã ãã°ã€ã³/ãã¹ã¯ãŒããªã³ã¯ã䜿çšããŠãªãã¬ãŒã¿ãŒã®æ©åšã«æ¥ç¶ãããšããŠãŒã¶ãŒã¯ã¬ã³ã¿ã«ããçªå·ãžã®åŒã³åºããåä¿¡ãããã®çªå·ããä»ã®ãµãã¹ã¯ã©ã€ããŒãžã®åŒã³åºããè¡ãããšãã§ããŸãã
- ã«ãŒã ãããã¯ã®ã¬ã³ã¿ã«ãšSIPãã©ã³ã¯ïŒãã©ã³ã¯ïŒã«ããæ¥ç¶ã SIPãã©ã³ã¯çµç±ã§æ¥ç¶ãããšããµãŒãã¹ãããã€ããŒã¯äºåã«åæããIPã¢ãã¬ã¹ã«ããã®ãªãã¬ãŒã¿ãŒããã¬ã³ã¿ã«ããçªå·ã«çä¿¡ãããã¹ãŠã®ã³ãŒã«ãéä¿¡ããŸãã SIPãã©ã³ã¯ã®ç·šææ¹æ³ã«å¿ããŠããã¹ã¯ãŒãèªèšŒã䜿çšããå Žåãšäœ¿çšããªãå ŽåããããŸãã ãã®å Žåãçºä¿¡ã³ãŒã«äžã«çä¿¡åŽã«è¡šç€ºãããæ£ããCallerIDã®èšå®ã¯ãIP PBX管çè ã®è©ã«ããã£ãŠããŸãã
- çºä¿¡ãã©ãã£ãã¯ãè³Œå ¥ããã«éä¿¡äºæ¥è ããDIDçªå·ãè³Œå ¥ããã ãªãã¬ãŒã¿ã¯ããã®çªå·ã«çä¿¡ããã³ãŒã«ãæå®ããããµãŒããŒã«ãªãã€ã¬ã¯ãããã ãã§ãã
- çºä¿¡ãã©ãã£ãã¯ã®è³Œå ¥ã çºä¿¡ãã©ãã£ãã¯ã販売ããéä¿¡äºæ¥è ã¯ããªãããŸãã ãã®å Žåãæéãã©ã³ã«ãã£ãŠã¯ãçä¿¡è ã«éä¿¡ãããCallerIDã¯ãç®çã®æ¹åã®ãã©ãã£ãã¯ãçµäºïŒæçµã¯ã©ã€ã¢ã³ãã«é ä¿¡ïŒãããªãã¬ãŒã¿ãã§ãŒã³ãééãããšãã«éä¿¡ãŸãã¯å€±ãããå¯èœæ§ããããŸãã ã«ãŒããå®äŸ¡ã ã£ããããã¢ã¹ã¯ã¯ã®ãªãã¬ãŒã¿ãŒãä»ããã¢ã¹ã¯ã¯ã®çªå·ãžã®åŒã³åºãããããšãã°ãã³ãã³ã®çªå·ãŸãã¯ãã«ã®ãŒã®çªå·ããçºä¿¡ãããå Žåãéåžžã«é »ç¹ã«ãããŸãã
ããã€ãã®åœã«é§åšå¡äºåæãæã€äŒæ¥ããä»ã®åœã«æ ç¹ã眮ãããäŒæ¥ã¯ã顧客ã®äŸ¿å®ã®ããã«ãããšãã°è±åœã®é»è©±çªå·ãè³Œå ¥ããã¢ã¹ã¯ã¯ã§çä¿¡ãåŠçã§ããŸãã ããã«ããã®ãããªçªå·ãæäŸãããªãã¬ãŒã¿ãŒã¯ãè±åœãžã®é話ã®é ä¿¡ã«é¢äžããŠããªãå¯èœæ§ããããŸãã ãã©ã«ãŒã·å ±ååœãªã©ã®äžéšã®åœã§ã¯ãéå± äœè ã«çªå·ãæäŸããŠããŸããã
ãã®ããã次ã®åæèŠä»¶ããé²ããŸãã
- ã³ãŒã«ãµãŒããŒã¯ã©ãã«ã§ãç«ã€ããšãã§ããŸã
- ãµãŒããŒã®æ°ã«å¶éã¯ãããŸãã
- éä¿¡äºæ¥è ã®æ°ã«å¶éã¯ãããŸãã
- ããããã¿ã€ãã®éšå±ã®ã¬ã³ã¿ã«ïŒãã°ã€ã³/ãã¹ã¯ãŒããŸãã¯ãã©ã³ã¯ïŒã§é»è©±ãåããããšãã§ããŸã
- ç¹å®ã®CallerIDã§ã®åŒã³åºãã¯ããã®ãµãŒããŒããã®ã¿ããã®CallerIDãçŸåšé¢é£ä»ããããŠããã¢ã«ãŠã³ãããã®ã¿ããŸãã¯CallerIDãå€æŽã§ããæŒç®åãä»ããŠçºçããå¿ èŠããããŸãã
- é£æ¥ãµãŒããŒéã®ã³ãŒã«ã¯ãçä¿¡åŽã«é¢ããæ å ±ã倱ãããšãªãééçã§ãªããã°ãªããŸããã ããšãã°ããã³ãã³ã®çªå·ãå¥ã®å°åã®å ç·ãæºåž¯é»è©±ããŸãã¯åºå®é»è©±ã«è»¢éãã
- çºä¿¡ã³ãŒã«ã®å Žåãæéãã©ã³ã«å¿ããŠãããé«äŸ¡ãªã«ãŒããä»ããŠäºçŽããæãå®ãã«ãŒããéžæããå¿ èŠããããŸãã éä¿¡ã®å質ãå¶åŸ¡ããã«ã¯ãABRãASRïŒç¹å®ã®ãã¬ãã©ããŒããŒããä»ããŠç¹å®ã®æ¹åã®éä¿¡ã®å質ã決å®ããçµ±èšãã©ã¡ãŒã¿ãŒïŒãç£èŠããå¿ èŠããããŸãã
- ã·ã¹ãã ã䜿çšããŠããå€éšãŠãŒã¶ãŒãããå Žåããªã¢ã«ã¿ã€ã ã§çŸåšã®æ®é«ãšçŸåšã®äŒè©±ã確èªããå¿ èŠããããŸã
- çŸåšã®æ®é«å€ãç¹å®ã®éé¡ãããå°ãªãå ŽåããŠãŒã¶ãŒã¯äŒè©±ã®çµäºãšãšãã«ãã€ãã¹æ®é«ã«é¢ããé³å£°ã¡ãã»ãŒãžãåä¿¡ããå¿ èŠããããŸã
- ãŠãŒã¶ãŒã¯ãWebãã©ãŠã¶ãŒïŒWebRTCïŒãä»ããŠåŒã³åºããè¡ããå¿ èŠããããŸãã
- çä¿¡ã³ãŒã«ãšçºä¿¡ã³ãŒã«ãåŠçãããµãŒããŒãããã³å å ¥è ã«ãµãŒãã¹ãæäŸãããµãŒããŒãåå²ã§ããŸãã
- åæãšã³ãŒã«ã«ãŒãã£ã³ã°ã«ã¯ãçä¿¡ã³ãŒã«ãšçºä¿¡ã³ãŒã«ã®äœçœ®æ å ±ãå¿ èŠã§ã
ã¡ãã£ãšãã泚æïŒèª¬æãããæ§æã¯æ®éçã§ãããã¯ã©ã€ã¢ã³ãã®ããŒãœãã©ã€ãºãšã1ã€ã®ãããŒãžã£ãŒãŸãã¯ãããŒãžã£ãŒã®ã°ã«ãŒããžã®ã¯ã©ã€ã¢ã³ãã®ãã€ã³ããå¿ èŠãªå Žåãã¯ã©ã€ã¢ã³ãæåã®ãµãŒãã¹ãããšãã°ã³ãŒã«ã»ã³ã¿ãŒã«é©ããŠããŸã 説æãããŠããã¡ã«ããºã ã®ã»ãšãã©ã¯æ®éçã§ãããä»ã®æ§æã§å¹æçã«äœ¿çšã§ããŸãã
å€ãã®èŠä»¶ãããã®ã§ãã©ãããå§ããã°ããã®ã§ããããïŒ ã¢ã¹ã¿ãªã¹ã¯ã¯åŒã³åºããåãå ¥ããåŒã³åºããè¡ããPythonã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯åŒã³åºãã®æºåãåŠçãããã¹ãŠã®äœæ¥ããŒã¿ãMariaDBã«ä¿åããã»ãšãã©ã®ããžãã¯ã¯ããã·ãŒãžã£ãšããŠå®è£ ãããŸãã ããã«ãããã¢ã¹ã¿ãªã¹ã¯ã®ããžãã¯ããã€ã€ã«ãã©ã³ã®äžèŠãªã«ãŒã«ããæ倧éã«åŒãé¢ããæ§æã®çµ±åãšãšãã«ã¹ã±ãŒã©ããªãã£ãæäŸã§ããŸãã
亀é
ãã©ãã£ãã¯ã決å®ããŸãã ãããã¹ãã¢ã¡ãªã«ãã€ã®ãªã¹ããã·ã¢ãªã©ã«ååšãå¿ èŠã§ãã ãã·ã¢ã®ãã©ãã£ãã¯ã®èŠ³ç¹ããã¯ããã·ã¢ã®éä¿¡äºæ¥è ãä»ããŠäœæ¥ããæ¹ãåçæ§ãé«ããªããŸãã ããšãã°ãWestcolãIPPortãªã©ã ãã·ã¢ïŒã¢ã¹ã¯ã¯ïŒã®ãªãã¬ãŒã¿ãŒããã³ãŒã495ããã³499ã®é»è©±çªå·ããªãŒãºããã«ãªäŸ¡æ Œã§åããŠããŸãããZadarmaãMultilelããŸãã¯ä»ã®äººããé»è©±çªå·ãè³Œå ¥ããããšã§ããããã¹ãã¢ã¡ãªã«ãã€ã®ãªã¹ã§ã®ååšã確ä¿ã§ããŸãã ãã·ã¢ã®ãªãã¬ãŒã¿ãŒããã®åœéé»è©±ã¯ããªãé«äŸ¡ãªã®ã§ãVoiceBuyãVoxBeamãªã©ã®å€åœã®ãªãã¬ãŒã¿ãŒãããã©ãã£ãã¯ãè³Œå ¥ã§ããŸãã
ããã°ã€ã³/ãã¹ã¯ãŒãããªãã·ã§ã³ã§éä¿¡äºæ¥è ã«æ¥ç¶ãããšãPBXãžã®åŒã³åºãã¯ãç»é²ãè¡ãããŠããäºæ¥è ã®ãµãŒããŒã®IPã¢ãã¬ã¹ããçºä¿¡ãããŸãã ãã ããçºä¿¡ã³ãŒã«ã®å ŽåããµãŒããŒã¢ãã¬ã¹ã¯ç°ãªãå ŽåããããŸãã
SIPãã©ã³ã¯ãä»ããŠãªãã¬ãŒã¿ã«æ¥ç¶ããå Žåãçä¿¡ã³ãŒã«ã¯ãªãã¬ãŒã¿ã®ããŒã«ã®è€æ°ã®ãµãŒããŒããçºä¿¡ãããçºä¿¡ã³ãŒã«ã¯åäžã®DNSåã䜿çšããŠçºä¿¡ãããŸããã»ãšãã©ã®å Žåãè€æ°ã®IPã¢ãã¬ã¹ãå«ãŸããŸãã ãã§ã«æ±ºå®ããããã«ããªãã¬ãŒã¿ãŒã¯çºä¿¡é話ã®CallerIDã眮ãæããããšãã§ããå ŽåããããŸããããã¯ãæéãã©ã³ãŸãã¯å¥çŽã§èŠå¶ã§ããŸãã ãã·ã¢ã§ã¯ãçºä¿¡é話ã«å¯ŸããCallerIDã®çœ®æïŒçªå·çœ®æïŒã¯çŠæ¢ãããŠããŸãã å€åœã®ãªãã¬ãŒã¿ãŒã䜿çšãããšãç¶æ³ã¯ã¯ããã«åçŽã«ãªããCallerIDã®çœ®æãå®å šã«ãµããŒããããŸãã
ããŒã¿ããŒã¹ãäœæããŸãã
ãã®èšäºã§å ¬éãããŠããããŒã¿ãšè¡šã®ã»ãšãã©ã¯ãé»è©±çªå·ãšIPã¢ãã¬ã¹ãé€ããŠãå®éã®ããŒã¿ããŒã¹ã®ã³ã¢ããã®æç²ã§ãã
ãã«ãé貚ã®é»æ°éä¿¡äºæ¥è ããããšããäºå®ã«ãããé»æ°éä¿¡äºæ¥è ã®è¡šã«ã¯é貚衚ãžã®ãªã³ã¯ãå¿ èŠã§ãã å°ãåŸã§ããªãã¬ãŒã¿ãŒã®é¢çšã®å€é貚åèšç®ã®å¯èœæ§ãæ€èšããŸãã
CREATE TABLE `currency` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `iso` CHAR(3) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci', `name_en` VARCHAR(200) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci', `name_ru` VARCHAR(200) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_ci', `numcode` INT(3) UNSIGNED ZEROFILL NULL DEFAULT NULL COMMENT 'numcode for country', PRIMARY KEY (`id`), UNIQUE INDEX `iso` (`iso`) ) COMMENT=' , iso ' COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
é貚
id | iso | name_en | name_ru | numcode |
---|---|---|---|---|
96 | RUB | ãã·ã¢ã«ãŒãã« | ãã·ã¢ã«ãŒãã« | 643 |
122 | ç±³ãã« | ç±³ãã« | ç±³ãã« | 840 |
156 | ãŠãŒã | ãŠãŒã | ãŠãŒã | 978 |
CREATE TABLE `providers` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `providername` VARCHAR(50) NULL DEFAULT '0' COLLATE 'utf8mb4_unicode_ci', `currency_id` INT(10) UNSIGNED NOT NULL DEFAULT '0', `noncli_prefix` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `cli_prefix` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `premcli_prefix` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `cli_allowed` ENUM('Y','N') NOT NULL DEFAULT 'N' COLLATE 'utf8mb4_unicode_ci', `dynamic_calls` CHAR(1) NULL DEFAULT 'N' COLLATE 'utf8mb4_unicode_ci', `append_plus` TINYINT(1) NOT NULL DEFAULT '1', `dynamic_calls_caller_id` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`), INDEX `FK_providers_currency` (`currency_id`), CONSTRAINT `FK_providers_currency` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ) COMMENT=' ' COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
ãããã€ããŒ
id | ãããã€ããŒå | currency_id | noncli_prefix | cli_prefix | premcli_prefix | cli_allowed | dynamic_calls | append_plus | dynamic_calls_caller_id |
---|---|---|---|---|---|---|---|---|---|
3 | ã¶ãã«ã | 96 | N | N | 1 | ||||
4 | ãã«ããã« | 122 | N | N | 1 | ||||
7 | ãŠã§ã¹ãã³ãŒã« | 96 | Y | N | 0 | 74951815283 | |||
8 | ãŽã©ãã¯ã¹ããŒã | 122 | 0011103 | 0011101 | 0011102 | Y | Y | 1 | |
11 | ãã€ã¹ã〠| 122 | 9991 | 9992 | 9993 | Y | Y | 1 | |
16 | IPPort | 96 | N | N | 1 |
ã ããã ãªãã¬ãŒã¿ãŒã
éåžžãå€åœã®äºæ¥è ã¯ã2ã3ã®é¢çšã課ãããŠããããã®æéã§çä¿¡å å ¥è ã«ãã©ãã£ãã¯ãé ä¿¡ããŸãã CLIãšNonCLIã®ãã¯ããã¯ã®éãã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
é¢çšãã©ã³ãéžæããã«ã¯ãéåžžãã³ãŒã«ã©ã€ã³ã®åœ¢æäžã«ççªå·ã®åã«ãã¬ãã£ãã¯ã¹ïŒ noncli_prefixãcli_prefixãpremcli_prefix ïŒã䜿çšãããŸãã
ãã£ãŒã«ãã®èª¬æïŒ
- providername-ãªãã¬ãŒã¿ãŒå
- currency_id-ãªãã¬ãŒã¿ãŒé貚
- noncli_prefix -CLIãµããŒããªãã®æé
- cli_prefix -CLIãµããŒãä»ãã®æé
- premcli_prefix-ãã¬ãã¢ã ã¬ãŒããã©ã³
- cli_allowed-ãªãã¬ãŒã¿ãŒãçºä¿¡åŒã³åºãã®CLIãå€æŽã§ããããšã瀺ããŸã
- dynamic_calls-ãªãã¬ãŒã¿ãŒãCLIã䜿çšããŠä»»æã®æ¹åã«åŒã³åºããè¡ãããšãã§ããããšã瀺ããŸãã
- append_plus-çä¿¡çªå·ã®åã«ã+ããè¿œå ãããã©ããã ã+ããå¿ èŠãšããæŒç®åãšãå¿ èŠãšããªãæŒç®åããããŸãã
- dynamic_calls_caller_id-ããã©ã«ãã¹ããŒãã¡ã³ãã®CIDã
WestCallããã³SIPãã©ã³ã¯çµç±ã§æ¥ç¶ãæäŸããä»ã®ãªãã¬ãŒã¿ãŒã®å Žåãçªå·ã®ããŒã«ãè³Œå ¥ããåŒã³åºããè¡ããšããã®ããŒã«ããçºä¿¡çªå·ãä»»æã®çªå·ã«å€æŽã§ããŸãã IPPortã¯ãä»ã®ãªãã¬ãŒã¿ãŒãšåæ§ã«ãåäžã®è³Œå ¥çªå·ã§ãã°ã€ã³/ãã¹ã¯ãŒãã¹ããŒã ã䜿çšããå Žåãçºä¿¡çªå·ã®å€æŽãèš±å¯ããŸããã VoxBeamããã³VoiceBuyãªãã¬ãŒã¿ãŒã¯ãããããæ¹åã®çºä¿¡é話ã«äœ¿çšãããçºä¿¡çªå·ãä»ã®çªå·ã«å€æŽã§ããŸãã 確ãã«ãäžã€ã ããããŸãïŒ ãããŠãçºåŒè çªå·ãåœãŸãã¯å°åã®å ç·çªå·ã«å¯Ÿå¿ããå ŽåãçåŒè ã«åŒãé ä¿¡ããæçµéä¿¡äºæ¥è ã¯ãåŒãæåŠããããçºåŒè ã®çªå·ãèªåã®çªå·ã«å€æŽãããããããšãã§ããŸãã ã€ãŸã ããšãã°ããã·ã¢ãããŠã¯ã©ã€ãïŒããšãïŒã«é»è©±ããããå ŽåãCallerIDãããšãã®ãŠã¯ã©ã€ãã®çªå·ã«å€æŽããŸããé»è©±ããããŠãããµãŒãã¹ãããã€ããŒã¯ãåã«é»è©±ããæã¡åããããšãã§ããŸãã ãå€éšã®çä¿¡åœéãã©ã³ã¯ãçµç±ããã³ãŒã«ã«ã¯å éšçªå·ãå«ããããšã¯ã§ããŸãããããšããå éšã³ãŒã«åŠçããªã·ãŒã«æºæ ããŠããŸããã ZadarmaãšMultitelã®ãªãã¬ãŒã¿ãŒãçªå·ã®ãããã€ããŒãšããŠäœ¿çšããå¿ èŠã«å¿ããŠçºä¿¡ãã©ãã£ãã¯ãéä¿¡ããŸããã
åŒåŠçã®éèŠãªåŽé¢ã¯ã»ãã¥ãªãã£ã§ãã IPãã¬ãã©ããŒãµãŒããŒãæ£ããæ§æãããŠããªããšãä»ã®äººã®é話ãééã§ããå ŽåããããããŸãã çä¿¡ããã³çºä¿¡ã³ãŒã«ãåŠçããåç·ã®ã»ãã¥ãªãã£ã確ä¿ããã«ã¯ãç°ãªãã³ã³ããã¹ãã«åŸã£ãŠãªãã¬ãŒã¿ãŒãåé¢ããããšã«å ããŠãéä¿¡ãµãŒãã¹ãæäŸããéä¿¡ãªãã¬ãŒã¿ãŒã®IPã¢ãã¬ã¹ã®ããŒã¿ããŒã¹ãäœæãã䟡å€ããããŸãã 第äžã«ããã¡ã€ã¢ãŠã©ãŒã«ãžã®ã¢ãã¬ã¹ã®ãšã¯ã¹ããŒããèšå®ããäžå¿ èŠãªãçä¿¡ããæé€ããããšãã§ããŸãã第äºã«ãéä¿¡äºæ¥è ãžã®æ¥ç¶æ¹æ³ã«é¢ããããå®å šãªæ å ±ãæäŸããŸãã
CREATE TABLE `providers_ips` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `provider_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `ipaddress` INT(11) UNSIGNED NOT NULL DEFAULT '2130706433', `domainname` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `direction` ENUM('IN','OUT','IN/OUT') NOT NULL DEFAULT 'IN' COLLATE 'utf8mb4_unicode_ci', `proto` ENUM('SIP','IAX2','H323') NOT NULL DEFAULT 'SIP' COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`), INDEX `FK_providers_ips_providers` (`provider_id`), CONSTRAINT `FK_providers_ips_providers` FOREIGN KEY (`provider_id`) REFERENCES `providers` (`id`) ) COMMENT=' . direction / ' COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
provider_ips
id | provider_id | ipaddress | ãã¡ã€ã³å | æ¹å | ããã |
---|---|---|---|---|---|
1 | 8 | 2130706433 | sbc.voxbeam.com | ã¢ãŠã | äžå£ |
2 | 8 | 1607694320 | 95.211.119.240 | 㧠| äžå£ |
7 | 3 | 2130706433 | sip.zadarma.com | ã¢ãŠã | äžå£ |
16 | 3 | 3106773121 | proxy-1.fr.zadarma.com | 㧠| äžå£ |
17 | 3 | 3106773122 | proxy-2.fr.zadarma.com | 㧠| äžå£ |
31 | 16 | 1506852360 | 89.208.190.8 | 㧠| äžå£ |
33 | 16 | 1506852357 | 89.208.190.5 | 㧠| äžå£ |
34 | 16 | 1506852354 | sip.n1.ipport.net | ã¢ãŠã | äžå£ |
35 | 11 | 2991415097 | sip.voicebuy.com | ã¢ãŠã | äžå£ |
42 | 4 | 3514573416 | 209.124.34.104 | ã¢ãŠã | äžå£ |
44 | 7 | 3277775106 | 195.94.225.2 | IN / OUT | äžå£ |
51 | 4 | 3514573417 | 209.124.34.105 | 㧠| äžå£ |
52 | 4 | 3514573446 | 209.124.34.134 | 㧠| äžå£ |
ãã£ãŒã«ãã®èª¬æïŒ
- provider_idã¯ããããã€ããŒããŒãã«ããã¢ãã¬ã¹ããªãã¬ãŒã¿ãŒã«ãã€ã³ãããããšã瀺ããŸã
- ipaddressã¯ãçµã¿èŸŒã¿é¢æ°INET_NTOAã䜿çšããå€æçšã®ãªãã¬ãŒã¿ãŒãµãŒããŒã®fqdnã¢ãã¬ã¹ã®Intè¡šçŸã§ãã
- domainnameã¯ãfqdnãåŒã³åºããåŠçãããªãã¬ãŒã¿ãŒã®ãµãŒããŒã®ååã§ããããšã瀺ããŸãã
- directionã¯ãæå®ãããIPã¢ãã¬ã¹ã®åŒã³åºãæ¹åã瀺ããŸãïŒåºåã®ã¿ã«OUTãå ¥åã®ã¿ã«INãå ¥åãšåºåã®äž¡æ¹ã«IN / OUTïŒ
- protoã¯ãéä¿¡äºæ¥è ãšã®éä¿¡ãçºçãããããã³ã«ã瀺ããŸãïŒSIP / IAX2 / H323ïŒ
ãããã£ãŠãæŒç®åãšã¢ãã¬ã¹ã®çµã¿åããã¯æ¬¡ã®ããã«ãªããŸãã
vw_providers
id | ãããã€ããŒå | ããã | ãã | æ¹å |
---|---|---|---|---|
16 | IPPort | äžå£ | 89.208.190.5 [89.208.190.5] | 㧠|
16 | IPPort | äžå£ | sip.n1.ipport.net [89.208.190.2] | ã¢ãŠã |
16 | IPPort | äžå£ | 89.208.190.8 [89.208.190.8] | 㧠|
4 | ãã«ããã« | äžå£ | 80.97.55.105 [80.97.55.105] | 㧠|
4 | ãã«ããã« | äžå£ | 209.124.34.104 [209.124.34.104] | ã¢ãŠã |
4 | ãã«ããã« | äžå£ | 41.218.96.199 [41.218.96.199] | 㧠|
11 | ãã€ã¹ã〠| äžå£ | sip.voicebuy.com [178.77.95.57] | ã¢ãŠã |
8 | ãŽã©ãã¯ã¹ããŒã | äžå£ | sbc.voxbeam.com [127.0.0.1] | ã¢ãŠã |
8 | ãŽã©ãã¯ã¹ããŒã | äžå£ | 95.211.119.240 [95.211.119.240] | 㧠|
7 | ãŠã§ã¹ãã³ãŒã« | äžå£ | 195.94.225.2 [195.94.225.2] | IN / OUT |
3 | ã¶ãã«ã | äžå£ | proxy-1.fr.zadarma.com [185.45.152.129] | 㧠|
3 | ã¶ãã«ã | äžå£ | proxy-3.ri.zadarma.com [195.122.19.11] | 㧠|
3 | ã¶ãã«ã | äžå£ | siplv.zadarma.com [195.122.19.17] | 㧠|
3 | ã¶ãã«ã | äžå£ | proxy-8.fr.zadarma.com [185.45.152.136] | 㧠|
3 | ã¶ãã«ã | äžå£ | sip.zadarma.com [127.0.0.1] | ã¢ãŠã |
3 | ã¶ãã«ã | äžå£ | siplv1.zadarma.com [195.122.19.17] | 㧠|
3 | ã¶ãã«ã | äžå£ | mediarelay-1.zadarma.com [185.45.152.162] | 㧠|
ããã¯äœã®ããã§ããïŒ
- ç¹å®ã®ãªãã¬ãŒã¿ãŒããã¬ã³ã¿ã«ããé»è©±çªå·ãžã®çä¿¡ã³ãŒã«ã¯ããã®ãªãã¬ãŒã¿ãŒã®ãµãŒããŒã®IPã¢ãã¬ã¹ã®ããŒã«ããã®ãã®ã§ãªããã°ãªããŸããã ãããã£ãŠãçä¿¡æã«ããªãã¬ãŒã¿ãŒã®IPã¢ãã¬ã¹ã®ããŒãã«ã䜿çšããŠããªãã¬ãŒã¿ãŒã«é¢é£ä»ããããçªå·ã確èªãã䟡å€ããããŸãã
- ãªãã¬ãŒã¿ãŒã¯ããµãŒããŒããã®çºä¿¡åŒã³åºããåŠçããè€æ°ã®ãµãŒããŒãæã€ããšãã§ããããããã€ã€ã©ãŒãã¥ãŒã圢æããéã«ãããèæ ®ããå¿ èŠããããŸãã
- ãã®ã¹ããŒã ã«ãããã³ãŒã«æååãå³åº§ã«åä¿¡ã§ããŸãã åæã«ãdomainnameãsip.confãŸãã¯iax.confã§å®çŸ©ããããã©ã³ã¯ã®ååã«çœ®ãæããŠããã·ã¹ãã ã¯ç ŽæããŸããã
- çªå·ã¯ããã©ãŒã«ããã¬ã©ã³ã¹ã®ããã«è€æ°ã®ãµãŒããŒã«ãå±éãã§ããåãµãŒããŒã«ãã£ãããšå²ãåœãŠãããšãã§ããŸãã ãã®çªå·ãæ¥ç¶ãããŠããªããµãŒããŒã§ã³ãŒã«ãåŠçããããšã¯æå³ããããŸããã
çªå·74957777777ã®é»è©±çªå·ãååŸããŠã¿ãŸãããã
SELECT CONCAT_WS('/', pips.proto, pips.domainname, CONCAT(IF(p.append_plus IS TRUE,'+',''), IFNULL(p.cli_prefix,''),74957777777)) AS dial_string FROM providers_ips AS pips LEFT JOIN providers AS p ON p.id=pips.provider_id WHERE pips.direction IN ('OUT', 'IN/OUT')
ãã€ã€ã«æååãªã¯ãšã¹ã
dial_string |
---|
SIP / sip.zadarma.com / 74957777777 |
SIP / westcall / 74957777777 |
SIP / sbc.voxbeam.com / 001110174957777777 |
SIP / sip.voicebuy.com / 999274957777777 |
SIP / sip.n1.ipport.net / + 74957777777 |
ã芧ã®ããã«ããã€ã€ã«ã®æºåãã§ããããŒã¿ãååŸããŸããããããã¢ã¹ã¿ãªã¹ã¯ãµãŒããŒã®ãã€ã€ã«ã¢ããªã±ãŒã·ã§ã³ã«æž¡ãå¿ èŠããããŸãã ä»ã®ãšããããã§åæ¢ããŸãã
éä¿¡äºæ¥è ããåããçªå·ããã€ã³ãããã«ã¯ããããã®çªå·ããµãŒãã¹ããããµãŒããŒã®ãªã¹ããæå®ããå¿ èŠããããŸãã
CREATE TABLE `servers` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `servername` VARCHAR(50) NULL DEFAULT '0' COLLATE 'utf8mb4_unicode_ci', `location` INT(11) NOT NULL DEFAULT '0' COMMENT 'country code where server is located', `ipaddress` INT(11) NOT NULL DEFAULT '2130706433' COMMENT 'localhost by default', `comment` VARCHAR(50) NULL DEFAULT '0' COLLATE 'utf8mb4_unicode_ci', `sip` VARCHAR(50) NULL DEFAULT NULL COMMENT 'SIP URI' COLLATE 'utf8mb4_unicode_ci', `iax2` VARCHAR(50) NULL DEFAULT NULL COMMENT 'IAX2 address and user binding if rsa keys used' COLLATE 'utf8mb4_unicode_ci', `iax2control` VARCHAR(50) NULL DEFAULT NULL COMMENT 'IAX2 address and control user binding for pair and route control' COLLATE 'utf8mb4_unicode_ci', `protocol` ENUM('SIP','IAX2') NOT NULL DEFAULT 'SIP' COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`) ) COMMENT=' ' COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
ãµãŒããŒ
id | ãµãŒããŒå | å Žæ | ipaddress | ã³ã¡ã³ã | äžå£ | iax2 | iax2control | ãããã³ã« |
---|---|---|---|---|---|---|---|---|
0 | æªå®çŸ© | 0 | 2130706433 | 0 | äžå£ | |||
1 | ã¢ã¹ã¿ãªã¹ã¯-ãã³ã ããã | 189 | 3557129729 | 0 | SIP / 212.5.126.1 | IAX2 / macomnet @ macomnet | IAX2 / macomnetcontrol @ macomnet | IAX2 |
2 | ã¢ã¹ã¿ãªã¹ã¯-msm | 189 | 1506807809 | 0 | SIP / 89.208.16.1 | IAX2 / msm @ msm | IAX2 / msmcontrol @ msm | IAX2 |
5 | ã¢ã¹ã¿ãªã¹ã¯-ã³ã«ãã | 189 | 1399234817 | 0 | SIP / 83.102.161.1 | IAX2 / corbina @ corbina | IAX2 / corbinacontrol @ corbina | IAX2 |
ãã£ãŒã«ãã®èª¬æïŒ
- servername-å éšãµãŒããŒå
- location-ãµãŒããŒãé 眮ãããŠããå°ççãšãªã¢ã ãã®å Žåããã·ã¢
- ipaddress-å®ãµãŒããŒã®IPã¢ãã¬ã¹
- sip-ãµãŒããŒã«æ¥ç¶ããããã®SIP URL
- iax2-ãµãŒããŒéã®ã³ãŒã«è»¢éçšã®ãµãŒããŒèå¥åãšRSAããŒã®ãã¢ãªã³ã°
- iax2control-ãªã¢ãŒããµãŒããŒç®¡çããã³ãµãŒããŒééä¿¡ã®ããã®ç¹å¥ãªã³ãã³ããã£ãã«ã æ倧80æåã®ã³ãã³ãé·
- ãããã³ã« -ãµãŒããŒééä¿¡ã®ã¿ã€ãã§ãœãŒãããããã®æ å ±ãã£ãŒã«ã
ãã®ããŒãã«ã¯äœã®ããã«ããããªããããªã«å¥åŠãªã®ã§ããïŒ ã¢ã¹ã¿ãªã¹ã¯ãµãŒããŒã®ãµãŒããŒéæ¥ç¶ã®å ŽåãIAXãããã³ã«ã䜿çšããã®ãæã䟿å©ã§ãã ããã€ãã®çç±ããããŸãã
- ãµãŒããŒéã®ãã¹ãŠã®ééãã©ãã£ãã¯ãæå·åã§ããŸã
- SIPãããã³ã«ãšã¯ç°ãªãããªãã¬ãŒã¿ãŒããã¡ã€ã¢ãŠã©ãŒã«ãééããã®ã¯ç°¡åã§ãïŒäœæ¥ã«å¿ èŠãªUDPããŒãã¯1ã€ã ãã§ãïŒ
- æå·åããŒãªãã§ãµãŒããŒãžã®æ»æè ãšã®æ¥ç¶ã確ç«ã§ããªã
- ãµãŒããŒéã§ããŒã¿ã転éããæ©èœã ããšãã°ãã»ãã·ã§ã³å€æ°ã SIPãããã³ã«ã§ã¯ãã»ãã·ã§ã³ãã±ããã®ããããŒã«ããŒã¿ãè¿œå ã§ããŸãããå€ãã®å ŽåãäœåãªããããŒã¯äžéãµãŒããŒã«ãã£ãŠãã±ããããåã«ãã¯ãªã¢ããããŸãã IAXãããã³ã«ã§ã¯ãæ¥ç¶ã確ç«ããåã«ã¹ããªãŒã ã§å¿ èŠãªå€æ°ã転éã§ããŸã
- ãµãŒããŒäžã®ã³ã³ããã¹ããžã®ãã¹ããšãŠãŒã¶ãŒ/ããŒã®ãã€ã³ãã£ã³ã°ã®ã¯ãªã¢
[macomnet] type=user username=macomnet auth=rsa inkeys=asterisk-corbina:asterisk-msm context=incoming_dialer encryption=yes qualify=yes disallow=all allow=gsm allow=ulaw [msm] type=peer host=89.208.16.1 username=msm auth=rsa outkey=asterisk-macomnet encryption=yes qualify=yes disallow=all allow=gsm allow=ulaw trunk=yes [corbina] type=peer host=83.102.161.1 username=corbina auth=rsa outkey=asterisk-macomnet encryption=yes qualify=yes disallow=all allow=gsm allow=ulaw trunk=yes
åæ段éã§ãµãŒããŒãæŽçããŸããã ããã§ããªãŒã¹ããçªå·ãç¹å®ã®ãµãŒããŒã«ãã€ã³ãããå¿ èŠããããŸãã ããã¯ãæ£ããã³ãŒã«ã«ãŒãã£ã³ã°ã«å¿ èŠã§ãã
CREATE TABLE numbers_pool
ïŒ
id
INTïŒ11ïŒUNSIGNED NOT NULL AUTO_INCREMENTã
number
VARCHARïŒ50ïŒNULL DEFAULT '0' COMMENT 'Leased number' COLLATE 'utf8mb4_unicode_ci'ã
provider_id
INTïŒ11ïŒUNSIGNED NOT NULL DEFAULT '0' COMMENT 'æŒç®åãžã®æ°å€ã®ä»å 'ã
server_id
INTïŒ11ïŒUNSIGNED NOT NULL DEFAULT '0' COMMENT 'ãµãŒããŒãžã®çªå·ã®server_id
'ã
BITïŒ1ïŒNOT NULL DEFAULT b'1 'COMMENT'çªå·ã®æå¹å/ç¡å¹å 'ã
direction
ENUMïŒ 'IN'ã 'OUT'ã 'IN / OUT'ïŒNULL DEFAULT 'IN' COMMENT 'ããã©ã«ãã®åŒã³åºãæ¹åã¯' COLLATE 'utf8mb4_unicode_ci'ã
virtualflag
BITïŒ1ïŒNOT NULL DEFAULT b'1 'COMMENT'ä»®æ³ãŸãã¯å®æ° 'ã
echotest
TINYINTïŒ1ïŒUNSIGNED NOT NULL DEFAULT '0' COMMENT 'æ°å€ã®ãã¹ã0/1-ãªã/ãªã³'ã
äž»ããŒïŒ id
ïŒã
äžæã®ã€ã³ããã¯ã¹number
ïŒ number
ïŒã
INDEX FK_number_assignment_copy_providers
ïŒ provider_id
ïŒã
INDEX FK_number_assignment_servers
ïŒ server_id
ïŒã
INDEX number btree
ïŒ number
ïŒã
CONSTRAINT FK_provider
FOREIGN KEYïŒ provider_id
ïŒREFERENCES providers
ïŒ id
ïŒã
CONSTRAINT FK_server
FOREIGN KEYïŒ server_id
ïŒREFERENCES servers
ïŒ id
ïŒ
ïŒ
COLLATE = 'utf8mb4_unicode_ci'
ãšã³ãžã³= InnoDB
AUTO_INCREMENT = 1
;
numbers_pool
id | æ° | provider_id | server_id | æå¹ | æ¹å | ä»®æ³ãã©ã° | ãšã³ãŒãã¹ã |
---|---|---|---|---|---|---|---|
125 | 37167859001 | 4 | 1 | 1 | 㧠| 1 | 0 |
126 | 37167859002 | 4 | 1 | 1 | 㧠| 1 | 0 |
278 | 4971122954000 | 4 | 1 | 0 | 㧠| 1 | 0 |
279 | 74951815000 | 7 | 1 | 1 | IN / OUT | 0 | 0 |
280 | 74951815001 | 7 | 1 | 1 | IN / OUT | 0 | 0 |
281 | 74951815002 | 7 | 1 | 1 | IN / OUT | 0 | 0 |
426 | 74951339501 | 3 | 2 | 0 | IN / OUT | 1 | 0 |
427 | 74951339502 | 3 | 1 | 0 | IN / OUT | 1 | 0 |
515 | 74957952301 | 16 | 1 | 1 | IN / OUT | 0 | 0 |
516 | 74957952302 | 16 | 2 | 1 | IN / OUT | 0 | 0 |
529 | 442038070121 | 11 | 1 | 1 | 㧠| 1 | 0 |
531 | 442038070123 | 11 | 1 | 1 | 㧠| 1 | 0 |
ãã£ãŒã«ãã®èª¬æïŒ
- çªå· -åœéãã©ãŒãããçªå·
- provider_id-çªå·ãæŒç®åã«ãã€ã³ãããŸã
- server_id-ãµãŒããŒã«çªå·ããã€ã³ãããŸã
- æå¹ -ãã®çªå·ã§ã®ãµãŒãã¹ã³ãŒã«ã®æç¡
- æ¹å -åŒã³åºãæ¹åçªå·ã«ãã£ãŠæäŸãããŸã
- virtualflag-æ°å€ã¯ãå®ããŸãã¯ãä»®æ³ãã§ãã ãå®éã®ãçªå·ã¯ãã€ã€ã©ã«é¢é£ä»ãããããä»®æ³ãã®çªå·ã¯é¢é£ä»ããããŠããŸãã
- echotest-çªå·ãã¹ãã¢ãŒããæå¹ã«ããŸãã ã¢ãŒããæå¹ã«ãªã£ãŠããå ŽåãåŒã³åºãã¯AsteriskãµãŒããŒã®EchoïŒïŒã¢ããªã±ãŒã·ã§ã³ã«è»¢éãããŸã
ã·ã¹ãã ã®éçºæç¹ã§ã¯ããªãŒã¹ãããçªå·ã®æ°ã¯çŽ400ã§ããµãŒããŒã®æ°ã¯4ã§ãããã³ãŒã«ã«ãŒãã£ã³ã°ããã¹ãããããã«ãMegafonã®Multifonãè¿œå ãããŸããã ãã°ã€ã³/ãã¹ã¯ãŒãã«é¢é£ä»ãããããå®éã®ãçªå·ã䜿çšããå Žåãæ£ãããã€ã€ã«ãã¢ãä»ããŠåŒã³åºããè¡ãããããã«ããå¿ èŠããããŸãã ã¢ã¹ã¿ãªã¹ã¯ã¯ãã©ã®ãã€ã€ã«ãã¢ãä»ããŠã³ãŒã«ãã«ãŒãã£ã³ã°ããå¿ èŠãããããç¥ãããšãã§ããªããããæ¥ç¶ããŒãã«ãäœæããå¿ èŠããããŸãã
CREATE TABLE `gates` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `numbers_pool_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', `serverid` INT(11) UNSIGNED NOT NULL DEFAULT '0', `gatename` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `gatenumber` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `cid_support` ENUM('Y','N') NULL DEFAULT 'Y' COLLATE 'utf8mb4_unicode_ci', `contextname` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', `comment` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`), UNIQUE INDEX `name_number` (`gatename`, `gatenumber`), INDEX `FK_gates_servers` (`serverid`), INDEX `FK_gates_numbers_pool` (`numbers_pool_id`), CONSTRAINT `FK_gates_numbers_pool` FOREIGN KEY (`numbers_pool_id`) REFERENCES `numbers_pool` (`id`), CONSTRAINT `FK_gates_servers` FOREIGN KEY (`serverid`) REFERENCES `servers` (`id`) ) COMMENT='List of gates on servers' COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
é
id | numbers_pool_id | ãµãŒããŒID | ã²ãŒãããŒã | ã²ãŒãçªå· | cid_support | ã³ã³ããã¹ãå | ã³ã¡ã³ã |
---|---|---|---|---|---|---|---|
1 | 516 | 1 | sip_peer_msm_2302 | 74957952302 | Y | sip_msm_74957952302 | |
2 | 515 | 1 | sip_peer_msm_2301 | 74957952301 | Y | sip_msm_74957952301 | |
8 | 279 | 1 | ãŠãšã¹ãã³ãŒã« | 74951815000 | Y | ãŠãšã¹ãã³ãŒã« | |
9 | 280 | 1 | ãŠãšã¹ãã³ãŒã« | 74951815001 | Y | ãŠãšã¹ãã³ãŒã« | |
10 | 281 | 1 | ãŠãšã¹ãã³ãŒã« | 74951815002 | Y | ãŠãšã¹ãã³ãŒã« |
ãã£ãŒã«ãã®èª¬æïŒ
- numbers_pool_id -numbers_poolããŒãã«ã®çªå·èå¥å
- serverid-ã²ãŒãããµãŒããŒã«ãã€ã³ã
- ã²ãŒãå-ã²ãŒãå
- ã²ãŒãçªå·-ã²ãŒãã«æ¥ç¶ãããçªå·
- cid_support-çºä¿¡ã³ãŒã«ã§calleridã€ã³ã¹ããŒã«ããµããŒããããŠãããã©ãã
- contextname-ãã®çªå·ãžã®çºä¿¡åŒã³åºããæäŸãããµãŒããŒäžã®ã³ã³ããã¹ã
ããã«ããããµãŒãã¹ã³ãŒã«ã®ããŒã¹ãã»ãŒå®æããŸãã ããã¯éåžžã«å€§ããªãããã¯ã§ãããå¥ã®èšäºã«å«ããå¿ èŠããããããæå³çã«é¢çšã·ã¹ãã ãšé話å¶åŸ¡ã·ã¹ãã ã®äœæ¥ãæ€èšããŸããã
åŒåŠçãšã«ãŒãã£ã³ã°ã®ã¡ã€ã³ããžãã¯ãAsteriskããApplication Serverã«ç§»åããããã·ãŒãžã£ãMariaDBã«ãããšããäºå®ã«ãããããã·ãŒãžã£ã®åäœããããã°ããã³å¶åŸ¡ããã¡ã«ããºã ãæäŸããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã次ã®ã¹ããŒã ã䜿çšã§ããŸãã
ãããã°æ
å ±ãä¿åããã«ã¯ãè¿œå ã®ãããã°ããŒã¿ããŒã¹ãäœæãã ããã«debug_recordsããŒãã«ãäœæããŸã
CREATE TABLE `debug_records` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `logtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `procedure_name` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci', `debug_text` TEXT NOT NULL COLLATE 'utf8mb4_unicode_ci', PRIMARY KEY (`id`) ) COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB AUTO_INCREMENT=1 ;
ãã®ããŒã¿ããŒãã«ã«æžã蟌ãã«ã¯ã ãããã°ããã·ãŒãžã£ãäœæããŸã
CREATE DEFINER=`root`@`localhost` PROCEDURE `debug`( IN `ProcedureName` VARCHAR(50), IN `DebugText` TEXT ) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT 'Save debug info to log' BEGIN DECLARE DebugEnabled TINYINT DEFAULT False; SET DebugEnabled=True; IF DebugEnabled THEN INSERT INTO debug_records (procedure_name,debug_text) VALUES (ProcedureName,DebugText); COMMIT; END IF; END
éçºæ®µéã§ã®ããã·ãŒãžã£ã®æäœã®ãããã°ãšå¶åŸ¡ã楜ãã¿ã«å€ãããŸãã åæé ã®æåã«ã2ã€ã®å€æ°ãå®çŸ©ããŸãã1ã€ç®ã¯æé ã®ååã2ã€ç®ã¯ãããã°ãæå¹ã«ãããã©ããã決å®ãããã©ã°ã§ãã ãããŠãããã·ãŒãžã£ãæ£ããåäœããªãå¯èœæ§ã®ããããŸããŸãªå Žæã§ãæåã«ãããã°ãã°ã«ã¬ã³ãŒããè¿œå ããŸãã
CREATE DEFINER=`root`@`localhost` PROCEDURE `usp_gettypeofcall`( IN `IncomingPhoneNumber` VARCHAR(30), IN `TargetGateNumber` VARCHAR(30), IN `CHANID` VARCHAR(60), IN `SYSTEMNAME` VARCHAR(30) ) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT ' ' BEGIN DECLARE ProcedureName VARCHAR(50) DEFAULT 'usp_gettypeofcall'; DECLARE ProcedureDebug TINYINT DEFAULT True; IF ProcedureDebug THEN CALL debug.debug(ProcedureName,CONCAT_WS(' ','Call from ',IncomingPhoneNumber,'to',TargetGateNumber,'at server',SYSTEMNAME,'with channelid',CHANID)); END IF; END
ãã®ããžãã¯ã®äœ¿çšã¯æšå¥šãããªããšããäºå®ã«æ³šæããŠãã ãã!!! ãããã°æ å ±ã®åºåã«ããããã©ãŒãã³ã¹ãå€§å¹ ã«äœäžããå¯èœæ§ããããããè² è·ãé«ãçç£ã¢ãŒãã§ã¯ã
ã¢ã¹ã¿ãªã¹ã¯ãæ§æãã
AsteriskãµãŒããŒã®ã»ããã¢ããã«ç§»ããŸãããã ã»ãšãã©ã®æ¢åã®æ§æã§ã ãããªãã¯ã³ã³ããã¹ãã«è©²åœããã³ãŒã«ãåŠçããããã®æšæºçãªæé ã¯æ¬¡ã®ãšããã§ãã
[public] exten => 74951815000,1,NoOp(Incoming Call to ${EXTEN}) same => n,Dial(SIP/1000,60) same => n,Hangup()
ãã€ã€ã«ã¢ãŠãã³ã³ããã¹ãããã®çºä¿¡ã³ãŒã«ã®åŠçã¯æ¬¡ã®ããã«ãªããŸã
[dialout] exten => _X.,1,NoOp(Outgoing Call to ${EXTEN}) same => n,Dial(SIP/dialpeer_name/${EXTEN},60) same => n,Hangup() [dialout] exten => _X.,1,NoOp(Outgoing Call to ${EXTEN}) same => n,Dial(SIP/sip.n1.ipport.net/${EXTEN},60) same => n,Hangup() [dialout] exten => _X.,1,NoOp(Outgoing Call to ${EXTEN}) same => n,Dial(SIP/${EXTEN}@sip.n1.ipport.net,60) same => n,Hangup()
äžè¬çã«ã誰ãããªãã奜ãã§ãããªãã奜ãã§ãã ãã®ãããªçºä¿¡ã³ãŒã«ã®çµç¹ã§èŠãããããã«ãã³ãŒã«ã®ã¹ããŒã¿ã¹ã«é¢ããæ å ±ã¯äºå®äžãããŸããã ãã€ã€ã«ãã©ã³ã³ãŒã«åŠçãå€æŽãããµãŒãã¹æ©èœãè¿œå ããŸãã
[service] ; GetIP subroutine exten => getip,1,Set(TESTAT=${CUT(SIP_HEADER(From),@,2)}) same => n,GotoIf($["${TESTAT}" != ""]?hasat) same => n,Set(FROM_IP=${CUT(CUT(SIP_HEADER(From),>,1),:,2)}) same => n,Goto(gotip) same => 20(hasat),Set(FROM_IP=${CUT(CUT(CUT(SIP_HEADER(From),@,2),>,1),:,1)}) same => n(gotip),NoOp(Incoming Server IP is ${FROM_IP}) same => n,Return() exten => set_handler,1,Set(CHANNEL(hangup_handler_push)=service,outbound_handler,1) same => n,AGI(/usr/local/etc/asterisk_scripts/create_channel_record.py) same => n,Return() ; Set Hangup handler for channel exten => outbound_handler,1,NoOp(Hungup handler python started) same => n,AGI(/usr/local/etc/asterisk_scripts/hangup.py) same => n,HangupCauseClear() same => n,Return() exten => no_more_paths,1,NoOp(No more dial paths) same => n,Hangup() [predial] exten => s,1,NoOp(PreDial handler python started) same => n,AGI(/usr/local/etc/asterisk_scripts/predial.py) same => n,Return() [public] exten => _X.,1,GoSub(service,getip,1) same => n,AGI(/usr/local/etc/asterisk_scripts/incoming.py) exten => _+X.,1,GoSub(service,getip,1) same => n,AGI(/usr/local/etc/asterisk_scripts/incoming.py) [users_context] exten => _X.,1,NoOp() same => n,AGI(/usr/local/etc/asterisk_scripts/make_a_route.py) [make_a_call] exten => h,1,NoOp(Hangup) exten => _.,1,NoOp(${EXTEN}) same => n,SET(__LoopCount=1) same => n(try),AGI(/usr/local/etc/asterisk_scripts/incoming_dialer.py) same => n,Dial(${DIALSTRING},60,b(service^set_handler^1)U(predial)) same => n,SET(__LoopCount=${IF($[${HANGUPCAUSE}=17]?10:${LoopCount})}) same => n,Set(__LoopCount=${INC(LoopCount)}) same => n,NoOp(Current LoopCount ${LoopCount}) same => n,GotoIf($["${LoopCount}" < 10]?try) same => n,Hangup() [redirect] exten => h,1,NoOp(Hangup) exten => _.,1,NoOp(${ForwardPath}) same => n,Dial(${ForwardPath}/${EXTEN},60,b(service^set_handler^1)) same => n,Hangup()
[ãµãŒãã¹]ã³ã³ããã¹ãã«ã¯ã次ã®ãããªãµãŒãã¹æ©èœãå«ãŸããŸãã
- getip-çä¿¡ãµãŒããŒã®IPã¢ãã¬ã¹ã決å®ããŸã
- set_handler-çŸåšã®çºä¿¡ã³ãŒã«ã«ãã³ãã©ãŒãèšå®ããŸãã ãã®ãã³ãã©ãŒã¯ããã£ãã«ãäœæãããšãã«åŒã³åºããè¡ãåã«åŒã³åºãããŸãã
- outbound_handler-å®äºãã³ãã©ãåŒã³åºããŸãã çä¿¡è ãé»è©±ãåããã¹ãŠã®å Žåã«åŒã³åºããã
- no_more_paths-ãµãã¹ã¯ã©ã€ããŒãåŒã³åºãããã«äœ¿çšå¯èœãªãã¹ãŠã®ãªãã·ã§ã³ã䜿ãæããããå Žåã«äœ¿çšãããŸã
ã³ã³ããã¹ã[predial]ã¯ãçä¿¡åŽã§ã®ããã¯ã¢ããã«æåãããšããµãã¹ã¯ã©ã€ããŒã®æ¥ç¶ã®åã«åŒã³åºãããŸãã
ãã¹ãŠã®å€éšåŒã³åºãã¯[public]ã³ã³ããã¹ãã«åé¡ãããŸãã
ãµãŒããŒãããµãŒããŒã«è»¢éããå¿
èŠããããã¹ãŠã®åŒã³åºãã¯ã [ãªãã€ã¬ã¯ã]ã³ã³ããã¹ãã«åé¡ãããŸãã
[users_context]ã³ã³ããã¹ãã¯ãé話ã®ã«ãŒããæºåããããã®ã¡ã€ã³ãŠãŒã¶ãŒã³ã³ããã¹ãã§ãã
ã³ã³ããã¹ã[make_a_call]ã¯ãçºä¿¡åŒã³åºããè¡ããšãã®ã¡ã€ã³ã³ã³ããã¹ãã§ãã
çä¿¡ã³ãŒã«ãåŠçããæé ããã詳现ã«æ€èšããŠãã ããã
- åŒã³åºãã¯ãªãã¬ãŒã¿ãŒã®ãµãŒããŒããæ¥ãŠãã³ã³ããã¹ããå ¥åããŸã[public]
- SIPãã±ããããããŒã«åºã¥ããŠãåŒã³åºãå ã®ãµãŒããŒã®IPã¢ãã¬ã¹ã決å®ããæé ãåŒã³åºãããŸãã
- AGI incoming.pyã¢ããªã±ãŒã·ã§ã³ãåŒã³åºãããçä¿¡åŒã³åºããåæåãããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®å éšããžãã¯ã¯ããŒã¿ããŒã¹ã«æ¥ç¶ããæåã®äœ¿çšå¯èœãªãã©ã¡ãŒã¿ãŒãæ¥ç¶æ€èšŒæé ã«éä¿¡ããŸãïŒãµãŒããŒIPã¢ãã¬ã¹ãçä¿¡çªå·ããµãŒããŒIDã ãµãŒããŒèå¥åã¯äžæã§ããããµãŒããŒããŒãã«ã«å¯Ÿå¿ãã asterisk.confãã¡ã€ã«ã§å®çŸ©ãããŸãã
- ãã¹ãŠãçªå·ã®èå¥ã§æ£åžžã§ããå Žåã以åã«äœ¿çšãããçºä¿¡è ãžã®ãŠãŒã¶ãŒã³ãŒã«ã®æ€çŽ¢ãè¡ãããŸãã æ€çŽ¢ãæåãããšãåŒã³åºãã¯åã®åŒã³åºãã®éå§è ã«è»¢éãããŸãã . , "".
[users_context] [make_a_call] .
:
- [users_context]
- AGI make_a_route.py , , , . , :
- CallerID
- ...
make_a_route.py [make_a_call] [redirect]
- [redirect] , , , .
- [make_a_call] . 10 . , 1 , .
- AGI incoming_dialer.py , , AGI make_a_route.py , DialString .
- , Dial , U b. b , . AGI , . , , . U , .. . .
- 17(), .
- . ABR, ASR
- , [no_more_paths] ,
Asterisk . , Asterisk, , RSA IAX . .
AGI Python Application . AGI . , AGI HTTP Application Server uwsgi . , , CURL .
© Aborche 2017