AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Скрипт подмены номера звонящего на Имя

Asterisk IP PBX 18 сообщений 20.09.2011 03:52 - 27.09.2011 08:02
#1 20.09.2011 03:52

Скрипт подмены номера звонящего на Имя


Всем привет, появилась задача, но с реализацией затрудняюсь.

Есть астер с установленным GSM модемом, так вот хочется чтобы когда на него звонят знакомые номера,
например которые забиты в файле tel_kniga, их номера заменялись на имена данных абонентов.
Например:
входящий с номера 89112223344 (данный номер принадлежит Васе, и он занесен в файл как соответствие 89112223344 - Вася), преобразуется в имя ВАСЯ и выдается на дисплей абоненту.
А незнакомые номера, которые не забиты в телефонную книгу так и выдавались не преобразованными.

Может Кто нить реализовывал данную задачу?
#2 20.09.2011 05:40

отписал в личку.
_________________
Успехов!
#3 20.09.2011 05:42

сори, но на платные решения не готов.
Могу пивком угостить если в Ёбурге будешь Smile
#4 20.09.2011 05:45

Можно.
1. Можно сделать табличку (хоть в AstDB, хоть в MySQL), куда занести это соответствие. У меня, например, многие мобильники (а звонки приходят по SIP от провайдера, и мобильники определяются типа как SIP/89151234567. Отсюда очень удобно в AstDB писать SIP как family key. И пишем DB(SIP,89151234567)='Vasya Pupkin'. У вас смотрите как будет правильнее, с GSM не работал, честно скажу.
2. Далее при звонке проверяем значение ключа (берём из CallerID) в базе (если его нет, получаем ошибку, отрабатываем её) и подставляем значение из базы в CallerID(name).

При работе с MySQL только запросы другие, так пофиг.
#5 20.09.2011 05:52

Баз данных нету, т.к. не работал с ними.
Звонки приходят вот в каком виде:
+79112223344@motiv

но номерок ещё преобразовывается в самом начале:
exten => +79112223344,1,Set(CALLERID(all)=${CALLERID(num)})
exten => +79112223344,2,Set(CALLERID(num)=8${CALLERID(num):2})
exten => +79112223344,n,Dial(SIP/100&SIP/102,45,rt)
exten => +79112223344,n,Hangup()

т.е. где нить в разрыв можно вставить строку преобразования номера в имя.
#6 20.09.2011 07:24

А откуда это имя возмется, кроме как из БД?
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6GB / 160GB
Gentoo Linux || Asterisk 1.8.5 | SFA | FFA | Datacard
#7 20.09.2011 07:41

Из файла например.
#8 20.09.2011 08:04

а средствами записной книжки ip телефона, софтфона не решается?
#9 20.09.2011 08:06

djserg-minyar
А зачем из файла? Shocked Из базы брать не просто, а очень просто. Мне надо было разобраться, так и сел и разобрался и с MySQL и с phpmyadmin. Далее как работать с базой из рингплана. Теперь у меня куча возможностей благодаря такой связке.
#10 20.09.2011 08:20

Прочитайте тут: http://wapo-spb.livejournal.com/5027.html
_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.
#11 20.09.2011 08:34

Quote:
а средствами записной книжки ip телефона, софтфона не решается?

к сожалению у меня два железных телефона.

Quote:
А зачем из файла? Из базы брать не просто, а очень просто. Мне надо было разобраться, так и сел и разобрался и с MySQL и с phpmyadmin. Далее как работать с базой из рингплана. Теперь у меня куча возможностей благодаря такой связке.

я к тому что с базами вообще не знаком, и нагружать домашний сервачек еще и msql, ну не знаю, видимо придется, потому что предложенное в последнем посте ещё сложнее, и не совсем то что надо.
Решение использовать файл, а не базу пришло из того, что базу как то надо переносить с железки на железку, а файлик можно копирнуть просто.

Quote:
Прочитайте тут: http://wapo-spb.livejournal.com/5027.html

Спасибо, но эт немного не совсем то что нужно.

Да.... не думал что вопрос то не простой такой окажется.
Как тогда проще данный вопрос решить с базой данных какой нибудь?
#12 20.09.2011 08:40

В статье описано НЕСКОЛЬКО технологий, а вам достаточно из этой статьи вырезать нужный кусок и использовать Smile
и получив инфу из БД сделать exten => ,,Set(CALLERID(name)=....)

_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.
#13 20.09.2011 08:52

прочитайте Астериск: будушее телефонии Глава 12
там и как установить, и как настроить, и даже примеры есть работы с БД
а с текстовым файликом вы больше намучаетесь
#14 20.09.2011 09:50

Quote:
и нагружать домашний сервачек еще и msql

Ну не хочется грузить мускулом, используйте встроенную AstDB, тем более что я уже почти успел разжевать что и как. А эта база уже есть, работает, запущена. Ей богу, дольше было писать всё это, чем разбираться, как с ней работать.
З.Ы.: многие скажут, что использование встроенной БД "не кошерно" Cool Но иногда проще.
#15 21.09.2011 22:54

к слову сказать, у меня mysql на домашнем роутере крутится уже несколько лет. причем там таблиц побольше будет чем просто для cdr астериска и базы callerid. при этом никогда не видел чтобы оно хоть немного грузило проц. железка такая: http://soekris.com/products/net5501.html - это уровень 486 компа. если у вас железо быстрее то и жаловаться причин не должно быть.
ps: еще стоит полноценный php, правда от апача пришлось отказаться - подтормаживал. lighttpd заменил его полностью. астериск естественно тоже стоит. в основном используется как роутер в локалке + выход в инет, торенты и тд. проц грузится максимум на 40-60% в пиках. в обычном режиме около 5-7%. Gentoo.

_________________
Успехов!
#16 27.09.2011 07:33

Хотим файлы, таки в чем трудности???
AGI
#!/bin/sh
perem=`cat kniga.txt|grep $1|grep -o ".*:" | sed 's/://g'`
#echo $perem
echo "SET VARIABLE PEREM $perem"


kniga.txt
Vasia Pupkin:8888888888
Vasia Lipkin:9999999999
#17 27.09.2011 07:53

а что в диалплан астера добавить? чтобы он запускал скрипт?
#18 27.09.2011 08:02

Нет, все-таки книги нужно ЧИТАТЬ Smile

exten = > _X.,1,AGI(.........)

_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.