г. Москва, ул. Ленинский пр-т, 70/11
г. Санкт-Петербург, Екатерининский проспект 1
г. Воронеж, ул. Пушкинская, 4А
г. Самара, ул. Льва Толстого, 123
г. Казань, ул. Московская, 31
г. Пермь, ул. Монастырская, 61
г. Екатеринбург, ул. Радищева 6А
г. Тюмень, ул. Республики 252/6
г. Новосибирск, Красный пр-т, 182/1
г. Омск, ул. Гагарина, 14
г. Москва, ул. Ленинский пр-т, 70/11
г. Санкт-Петербург, Екатерининский проспект 1
г. Воронеж, ул. Пушкинская, 4А
г. Самара, ул. Льва Толстого, 123
г. Казань, ул. Московская, 31
г. Пермь, ул. Монастырская, 61
г. Екатеринбург, ул. Радищева 6А
г. Тюмень, ул. Республики 252/6
г. Новосибирск, Красный пр-т, 182/1
г. Омск, ул. Гагарина, 14
Замечательная утилита Oktell SIP-GSM позволяет использовать обычные 3G-модемы для передачи голосового трафика.
Не знал как назвать тему. Объясню задачу.
Замечательная утилита Oktell SIP-GSM позволяет использовать обычные 3G-модемы для передачи голосового трафика (замечу, что голос идет именно по каналу GSM, а не по 3G или Интернет). Это позволяет значительно сократить расходы на связь с мобильными абонентами. На одном из проектов - экономия составила более 50%. Но есть один нюанс - самый простой способ фильтровать направление путем анализа первых двух цифр номера (проверяем на 89...) не подходит, так как мобильный телефон зарегистрированный в Москве проходит фильтр, но стоимость звонка на него несколько пугает.
Необходимо более точно распределять звонки на мобильное направление.
И так по шагам:
У нас имеется исходный файл в формате xls с DEF кодами, который мы должны разместить на телефонном сервере. Файл можно скачать тут.
Подключаем данный файл в сценарий Октелла в виде SQL-запроса со следующими параметрами - см. картинки ниже.
Где строка подключения к БД выглядит примерно так:
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Program Files (x86)\oktell\Server\Scripts\files\DEF.xls; Extended Properties="Excel 8.0"
На вкладке Запрос вводим запрос:
select top 1 region as [Регион] from [DEF$] where ([DEF$].[ABC]=@reg) and (@num between [DEF$].[minNUM] and [DEF$].[maxNUM])
В данном случае, Регион - это переменная, в которую возвращается значение региона мобильного телефона, region, ABC, minNUM, maxNUM - это соответсвующие столюцы таблицы на листе DEF. В переменные @reg и @num мы помещаем цифры кода оператора (3 цифры, начиная с 9) и оставшиеся 7 цифр номера телефона.
Далее в сценарии необходимо сделать проверку на содержимое переменной Регион. Если она не пустая, то звонок можно считать местным, а если пустая - направить через междугороднего оператора.
Забыл уточнить, в файле существует два листа - DEF и All DEF. На первом необходимо поместить все направления, по которым можно разрешить звонки через GSM, на втором - все направления. Почему так сделано - если анализировать каждый раз весь файл, то будет возникать задержка в обработке запроса.
Если же надо анализировать все диапазоны мобильных номеров, то рекомендую загрузить Excel'вскую таблицу в БД Oktell. Это ускорит работу. Но помните, что при большом количестве обращений, задержки неизбежны!
Надеюсь, был полезен! Если хотите снизить затраты на связь до 60% - заказывайте услугу!
Если статья оказалась полезной - поделись ссылкой с друзьями - кнопки ниже!