Скрипт подмены номера звонящего на Имя
Есть астер с установленным GSM модемом, так вот хочется чтобы когда на него звонят знакомые номера,
например которые забиты в файле tel_kniga, их номера заменялись на имена данных абонентов.
Например:
входящий с номера 89112223344 (данный номер принадлежит Васе, и он занесен в файл как соответствие 89112223344 - Вася), преобразуется в имя ВАСЯ и выдается на дисплей абоненту.
А незнакомые номера, которые не забиты в телефонную книгу так и выдавались не преобразованными.
Может Кто нить реализовывал данную задачу?
_________________
Успехов!
Могу пивком угостить если в Ёбурге будешь
1. Можно сделать табличку (хоть в AstDB, хоть в MySQL), куда занести это соответствие. У меня, например, многие мобильники (а звонки приходят по SIP от провайдера, и мобильники определяются типа как SIP/89151234567. Отсюда очень удобно в AstDB писать SIP как family key. И пишем DB(SIP,89151234567)='Vasya Pupkin'. У вас смотрите как будет правильнее, с GSM не работал, честно скажу.
2. Далее при звонке проверяем значение ключа (берём из CallerID) в базе (если его нет, получаем ошибку, отрабатываем её) и подставляем значение из базы в CallerID(name).
При работе с MySQL только запросы другие, так пофиг.
Звонки приходят вот в каком виде:
+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()
т.е. где нить в разрыв можно вставить строку преобразования номера в имя.
_________________
Intel Core 2 Duo E6400 @ 2.40GHz / 6GB / 160GB
Gentoo Linux || Asterisk 1.8.5 | SFA | FFA | Datacard
А зачем из файла?
_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.
| Quote: |
| а средствами записной книжки ip телефона, софтфона не решается? |
к сожалению у меня два железных телефона.
| Quote: |
| А зачем из файла? Из базы брать не просто, а очень просто. Мне надо было разобраться, так и сел и разобрался и с MySQL и с phpmyadmin. Далее как работать с базой из рингплана. Теперь у меня куча возможностей благодаря такой связке. |
я к тому что с базами вообще не знаком, и нагружать домашний сервачек еще и msql, ну не знаю, видимо придется, потому что предложенное в последнем посте ещё сложнее, и не совсем то что надо.
Решение использовать файл, а не базу пришло из того, что базу как то надо переносить с железки на железку, а файлик можно копирнуть просто.
| Quote: |
| Прочитайте тут: http://wapo-spb.livejournal.com/5027.html |
Спасибо, но эт немного не совсем то что нужно.
Да.... не думал что вопрос то не простой такой окажется.
Как тогда проще данный вопрос решить с базой данных какой нибудь?
и получив инфу из БД сделать exten => ,,Set(CALLERID(name)=....)
_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.
там и как установить, и как настроить, и даже примеры есть работы с БД
а с текстовым файликом вы больше намучаетесь
| Quote: |
| и нагружать домашний сервачек еще и msql |
Ну не хочется грузить мускулом, используйте встроенную AstDB, тем более что я уже почти успел разжевать что и как. А эта база уже есть, работает, запущена. Ей богу, дольше было писать всё это, чем разбираться, как с ней работать.
З.Ы.: многие скажут, что использование встроенной БД "не кошерно"
ps: еще стоит полноценный php, правда от апача пришлось отказаться - подтормаживал. lighttpd заменил его полностью. астериск естественно тоже стоит. в основном используется как роутер в локалке + выход в инет, торенты и тд. проц грузится максимум на 40-60% в пиках. в обычном режиме около 5-7%. Gentoo.
_________________
Успехов!
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
exten = > _X.,1,AGI(.........)
_________________
P4 3.0 + 1Gb CentOS 5.5 Aster 1.8.5
Не люблю gui-сборки: натуральный продукт вкуснее.