Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Вопрос по CALLERID(num)

0

Доброго времени суток,

В общем, надо сделать чтобы при входящем звонке номер входящего вызова записывался куда-нибудь в БД. Вопрос в том, что вернет команда CALLERID(num) если вдруг не удастся определить номер? И вообще, от чего зависит возвращаемое значение?

Прошу сильно не пинать. Всего второй день с астериском работаю, только пытаюсь разобраться что да как. Если это важно, то модель шлюза D'link dvg-6004s.

спросил Dec 17 '13

WShade Gravatar WShade flag of Russian Federation
1 4 2

Comments

Для начала сюда:

"Астериск - будущее телефонии». 2-e издание, Издательство О'Рейли"

http://asterisk-support.ru/question/14859/knigi-po-asterisk/

bolshoy_plohish (Dec 17 '13)edit

Обязательно почитаю, но мне бы ответ сейчас. Просто книгу в 600 страниц так быстро не прочитать, да и в рабочее время не книги читать надо. Но в любом случае, спасибо.

WShade (Dec 17 '13)edit

Без основ понимания подсказок не будет.

Я за 3 морозных новогодних выходных осилил. :-)

bolshoy_plohish (Dec 17 '13)edit

В общем все понятно. Тут на все вопросы отвечают ссылкой на книгу? Это не такой сложный вопрос для того кто понимает. Дали бы ссылку на статью где описаны возвращаемые значения, тема была бы уже закрыта. Вот тут http://asterisk.ru/knowledgebase/Asterisk+func+callerid написано Возвращаемые значения Возвращает строку с результатом.

Что из этого можно понять?

WShade (Dec 17 '13)edit

Берете и пробуете. Вы астериском для работы же занимаетесь? Вот и читайте на работе. Не надо тут "надо было вчера", "надо сделать или уволят" и всего такого. Второй день работы с астериском это значит лишь то, что вы вообще ничего не знаете. Топайте читать книжку, потом вопросы задавайте.

switch (Dec 17 '13)edit

Да я уже понял. Просто ответить на элементарный вопрос было бы несколько проще и быстрее чем разводить тут дискуссию и выставлять себя Д'артаньяном.

WShade (Dec 17 '13)edit

Мы пытаемся дать Вам удочку, а не рыбу. Хотя глупо ожидать от типичного админа благодарности за это.

switch (Dec 17 '13)edit

просто если ответить куском диалпална, слудующий вопрос будет "почему не появляется в базе" или почему не коннектится к базе

meral (Dec 17 '13)edit

"Мы пытаемся дать Вам удочку, а не рыбу. Хотя глупо ожидать от типичного админа благодарности за это." Во первых. Я не типичный админ. Сервак с астериском вообще не моя работа, я просто замещаю человека который сейчас в отпуске. Вообще я C# программистом работаю. Во вторых. Я уже узнал ответ, не читая тонны книг. Просто сделал вывод при входящем звонке и посмотрел что выводит :)

WShade (Dec 18 '13)edit

И спасибо ребятам ponch и Sarumjnauch. Ломать работающую систему я не буду конечно, но за ссылку про записи в базу большое спасибо. Буду разбираться. Если честно, то в самом астериске ничего особо сложного не увидел. :) Ну если не реализовывать задачи высокой сложности конечно :)

WShade (Dec 18 '13)edit

да тут 99% таких "нетипичных". а потом фигня какаято творится с системами и астериск плохой.

meral (Dec 18 '13)edit

Я вас прекрасно понимаю. А вот насчет астерикс "плохой" я бы поспорил. Я конечно только начал разбираться, но те возможности с которыми я уже столкнулся просто поражают. При должном желании и с хорошей фантазией можно просто гениальные вещи делать. Вот например http://habrahabr.ru/post/104026/ =)

WShade (Dec 18 '13)edit

Это еще не гениально, это так, от нищеты...

switch (Dec 18 '13)edit

Я понимаю что для вас это уже вполне обычное дело, но для тех кто раньше не сталкивался с телефонией вообще.... :)

WShade (Dec 19 '13)edit

эта статья типичная статья человека который только вот прочитал одну книжку и "ухты, работает". что там гениального если он повторяет тысячи других написанных статей. ничего особо сложного нету, но есть куча кочек которые вы не заметите с первого раза. главное ноги не поломать.

meral (Dec 19 '13)edit

2 Ответа

0

Рекомендую поставить не голый Asterisk, а Elastix. Там уже есть база звонков и много еще чего. Отвечая же на ваш вопрос скажу, что проще вставить в dial-plan команду NoOp(${CALLERID(number)}), позвонить на шлюз с сотового телефона, на котором включен запрет определения номера и посмотреть в /var/log/asterisk/full, так как значение CALLERID(number) может зависеть, от того как такие номера передает ваша телефонная компания или же как определяет ваш шлюз. AFAIK, это никак не регламентируется. Например, у меня в системе пишется "Unknown", может быть пустая строка, extension порта шлюза, наконец, просто всякий "мусор", который приходит от древней АТС оператора...

ссылка удалить спам редактировать

ответил Dec 17 '13

ponch Gravatar ponch
231 26 3 12

обновил Dec 17 '13

0

Вам надо в первую очередь разобраться с принципами работы самого Астериска, так что верно делают замечание, и дают вам ссылку на книгу. Вот вам ссылка с пошаговым описанием как писать CDR в MySQL базу: Asterisk 1.8 пишем CDR используя ODBC. Копайте в эту сторону. CallerID(num) это то, что посылает вам провайдер, Астериск его не определяет, он его просто читает. Если провайдер ничего не посылает, то и переменная будет пустой. Надеюсь внес некоторую ясность, а так Велком :)

ссылка удалить спам редактировать

ответил Dec 17 '13

Sarumjnauch Gravatar Sarumjnauch flag of Ukraine
185 5 6
http://thirdlane.com/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Dec 17 '13

Просмотрен: 496 раз

Обновлен: Dec 17 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.