Comments 40
Выглядит очень сложно. Понимаю, что я как сотрудник Vxoimplant предвзят, но что мешает использовать облачную телефонию для исходящих звонков, звонить из облака безо всякой «симки» и «номера», а при подключении раскидывать звонки на CRM, сотовые, SIP — куда угодно? Это вроде и по деньгам дешевле будет, и десяток строк JavaScript вместо конфигурации Asterisk, и GSM шлюз не нужен?
Можете навскидку сказать, сколько стоит исходящая минута по России из облака?
Смотря куда звонить. На городские порядка 10 копеек в минуту, на сотовые — зависит от оператора, обычно порядка 2 рублей хотят.
Через симки исходящий по России стоит 30 копеек, в т. ч. на сотовые. Через облако дорого, мы очень много звоним.
Нехорошо обманывать. Звонки по Москве/Питеру у вас по прайс-листу 95 коп/минута, по России — от 95 коп до 4,44 рублей. И лишь предположительно бесплатный 8-800 — по 10 коп.
Конечно нехорошо, кто спорит. И где вы такие цены нашли? О_О Я обычно на voximplant.ru смотрю, там у нас простой «однокликовый» прайс по кейсам. Есть еще полный на voximplant.com, но оно как бы одним генератором генерируется :)
Именно там и нашла: https://voximplant.ru/pricing.html -> Звонки по России -> Скачать все цены в CSV (http://voximplant.com/docs/rates/voximplant_outbound_rates_RUR.csv)
Т.е. на самой странице красиво написано, да, но когда по * переходишь на полный прайс — реальность оказывается более приближенной к «земным» ценам. У нас звонки в основном по областным городам России (Ярославль — 74852, Иваново 74932, Пермь 7342, для примера), так ваши цены вполне обычные (ну, подешевле Ростелекома, будем честны).
Мультифон от Мегафона нам выходит дешевле, по 1.5 руб/минуту по России.
Т.е. на самой странице красиво написано, да, но когда по * переходишь на полный прайс — реальность оказывается более приближенной к «земным» ценам. У нас звонки в основном по областным городам России (Ярославль — 74852, Иваново 74932, Пермь 7342, для примера), так ваши цены вполне обычные (ну, подешевле Ростелекома, будем честны).
Мультифон от Мегафона нам выходит дешевле, по 1.5 руб/минуту по России.
Ну это реализация конкретного админа, причем, да, очень сложная.
Данный функционал это 10 строчек на перл/с/с++, и минимальная правка диалплана.
lib.php — не нужен
getbalance.php — переложить на цикл, запускать по крону. Убрать вот это: if ($s>10) exit;, ибо если будет проблема с конкретной симкой (блокировка например) — скрипт обречен.
и тд.
Данный функционал это 10 строчек на перл/с/с++, и минимальная правка диалплана.
lib.php — не нужен
getbalance.php — переложить на цикл, запускать по крону. Убрать вот это: if ($s>10) exit;, ибо если будет проблема с конкретной симкой (блокировка например) — скрипт обречен.
и тд.
exten => _X.,n,set(SIMNUM1=${SHELL(/usr/bin/php -f %pathtoscript%/getsim1.php)})
exten => _X.,n,set(SIMNUM2=${SHELL(/usr/bin/php -f %pathtoscript%/getsim2.php)})
exten => _X.,n,set(SIMNUM3=${SHELL(/usr/bin/php -f %pathtoscript%/getsim3.php)})
exten => _X.,n,set(SIMNUM4=${SHELL(/usr/bin/php -f %pathtoscript%/getsim4.php)})
exten => _X.,n,set(SIMNUM5=${SHELL(/usr/bin/php -f %pathtoscript%/getsim5.php)})
exten => _X.,n,set(SIMNUM6=${SHELL(/usr/bin/php -f %pathtoscript%/getsim6.php)})
exten => _X.,n,set(SIMNUM7=${SHELL(/usr/bin/php -f %pathtoscript%/getsim7.php)})
exten => _X.,n,set(SIMNUM8=${SHELL(/usr/bin/php -f %pathtoscript%/getsim8.php)}
WTF?
Мало того, что PHP, так еще и разными однотипными скриптами, так еще и куча вызовов.
exten => _X.,n,Set(ARRAY(SIM1,SIM2,SIM3,SIM4)=${SHELL(/usr/bin/php -f %pathtoscript%/getsim.php)})
Ну или на край использовать аргументы при вызове скрипта.
Кроме того, какой смысл в lib.php?
Спасибо, одним скриптом конечно лучше.
В конкретном случае смысла в lib.php нет, но он используется во многих скриптах, чтобы не писать одно и то же.
Ошибся веткой.
В конкретном случае смысла в lib.php нет, но он используется во многих скриптах, чтобы не писать одно и то же.
Ошибся веткой.
Есть замечательная штука — unixODBC, рекомендую. Необходимость в костылях отпадет, и доступ к нужной базе будет всего одной строчкой.
а использовать БД напрямую с астериска?
Я использую БД для вывода текущих остатков.
Если вы имеете в виду записывать туда порядок вызова симок, то накладные расходы будут больше, чем записать и считать 1 байт из файлов.
Если вы имеете в виду записывать туда порядок вызова симок, то накладные расходы будут больше, чем записать и считать 1 байт из файлов.
-del-
Чтобы считать номер первой симки, как минимум с диска прочитается запрос «select simnumber from...», который сам по себе занимает несколько десятков байт.
Плюс найти в БД это поле и считать его значение.
Плюс найти в БД это поле и считать его значение.
создайте хранимую процедуру и вам база сама скажет, через какую симку звонить. это гораздо проще, чем у вас.
Плохая практика.
Если база ляжет или неверный пароль — подвесите астериск.
Если база ляжет или неверный пароль — подвесите астериск.
Если есть freepbx, то можно использовать модуль trunk balance. Или еще есть скрипт через функцию RAND.
Мне интересно «как не потерять входящий звонок на симку, если по ней уже разговаривают, спросите в комментариях (на статью не тянет)»
Мы вообще не принимаем входящие звонки на симки, потому что тогда уменьшается число исходящих линий.
Вместо этого мы купили симку Мегафона, на которой есть Мультифон. Зарегистрировали Мультифон на Астериске и на всех симках настроили безусловную переадресацию на этот номер.
Астериск принимает звонок на Мультифон, в течение 1,5 секунд клиенту проигрывается сообщение «Мы перезвоним», кладется трубка и создается callback. Операторы перезванивают.
Так как мы укладываемся в 3 секунды, за звонок клиент не платит.
Вместо этого мы купили симку Мегафона, на которой есть Мультифон. Зарегистрировали Мультифон на Астериске и на всех симках настроили безусловную переадресацию на этот номер.
Астериск принимает звонок на Мультифон, в течение 1,5 секунд клиенту проигрывается сообщение «Мы перезвоним», кладется трубка и создается callback. Операторы перезванивают.
Так как мы укладываемся в 3 секунды, за звонок клиент не платит.
Есть сигнализация pre_answer (использую во FreeSWITCH). Абоненту можно проигрывать голосовые сообщения (до 20 сек) + принимать тоновые нажатия клавиш. Входящие в этом случае бесплатны ибо считаются ожиданием подъема трубки вызываемого абонента.
p.s. Часто музыка вместо гудков именно по такому принципу делается.
p.s. Часто музыка вместо гудков именно по такому принципу делается.
Также переадресованный вызов бесплатен, так как укладывается в 3 сек.
Входящие на Мультифоне бесплатны, нужно только подкидывать пару рублей раз в 2-3 месяца и делать платный звонок, чтобы симка не заблокировалась.
Входящие на Мультифоне бесплатны, нужно только подкидывать пару рублей раз в 2-3 месяца и делать платный звонок, чтобы симка не заблокировалась.
Никак.
Если нагрузка маленькая, смириться или костыль, описанный выше akopylov.
А если нагрузка большая, то договорись с оператором о многоканальном СИП с сотового номера (оператор агрегатирует на своей стороне звонки на сотовые номера и выдает в единый транк по SIP, таким образом не важно сколько звонков приходит на один сотовый номер).
Операторы конечно ломаются — это доп нагрузка на их оборудование, но если хорошо нажать на глаза — предоставляют.
Если нагрузка маленькая, смириться или костыль, описанный выше akopylov.
А если нагрузка большая, то договорись с оператором о многоканальном СИП с сотового номера (оператор агрегатирует на своей стороне звонки на сотовые номера и выдает в единый транк по SIP, таким образом не важно сколько звонков приходит на один сотовый номер).
Операторы конечно ломаются — это доп нагрузка на их оборудование, но если хорошо нажать на глаза — предоставляют.
Переадресацией на симку этого же оператора, если конечно тариф позволяет.
После внедрения колбека стало поступать много мусорных звонков.
Поэтому теперь вместо колбека шлем смс с названием организации и правильным номером, на который нужно звонить.
Поэтому теперь вместо колбека шлем смс с названием организации и правильным номером, на который нужно звонить.
О боже, вот это костыль)
в addpac 2000 это делается одной строчкой в конфиге!
Sign up to leave a comment.
Балансировка исходящих вызовов через GSM-шлюз