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

Asterisk Дисплей телефона

0

Доброго времени суток. Директор поставил задачу выводить на дисплее телефона кучу данных о клиенте. Я их записываю так (php-скрипт):

$cid = $row1_rom."/".$row2_rom."/".$row3_rom."/".$telephone_number_rom;
fwrite(STDOUT, "SET CALLERID $cid \"\"\n");
fflush(STDOUT);
$result = trim(fgets(STDIN, 4096));

Однако у меня выходит очень длинная строка и в итоге на дисплеее не вмещается вся информация. Снизу же на дисплее отображается еще одна строка в которой пишеться Unknown. Как к этой строке можно обратиться, чтобы туда что-нибудь записать. Модель телефона распространенная: Cisco SPA502G. Заранее спасибо.

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

спросил 2012-09-04 15:12:24 +0400

анонимный пользователь

Аноним

2 Ответа

0

А через sms-сервер не але? Там 255 сиволов можно задействовать, а у CID максимальная длина 80 байт, т. е. если стоит юникод, можно использовать только 40.

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

ответил 2012-09-04 15:33:24 +0400

CheeZ Gravatar CheeZ
1205 7 6 25

Comments

Про юникод конечно спорно , но в целом конечно верно, выводит инфу в CID глупая задача. Вариантов куда выводить инфу - мульён.

zzuz ( 2012-09-04 15:51:41 +0400 )редактировать

Хм. Хотя да, 40 символов. И только из-за ограничения буфера функции.

zzuz ( 2012-09-04 15:53:09 +0400 )редактировать

Маленьк не дописал - надо читать "если стоит юникод, можно использовать только 40 символов". В алфовитном юникоде длинна символа 2 байта, в иероглифическом 3-4 (3 упрощенный китайский и корейский, 4 традиционный китайский и японский)

CheeZ ( 2012-09-04 16:04:12 +0400 )редактировать

Ребята, я написал программу, которая при звонке вызывает всплывающее окно на экране компьютера со всей нужной информациец, но из-за того, что тормозят компы, руководство решило выводить пока на дисплей телефона. Разве дело в юникоде? Просто ширины дисплец не хватает для строки, а сама строка не переноситься.

romedal ( 2012-09-04 16:25:52 +0400 )редактировать

на дисплей выводиться xml-ом. ищите в гугле cisco xml service

meral ( 2012-09-04 16:31:24 +0400 )редактировать

И существует способ запустить xml service по звонку? Или вы предлагаете автору нажимать кнопку Service при входящем звонке?

kasper ( 2012-09-04 21:41:21 +0400 )редактировать

То есть совет "ищите в гугле cisco xml service" нагло проигнорирован?

zzuz ( 2012-09-04 22:55:32 +0400 )редактировать

zzuz, неприлично отвечать вопросом на вопрос. Не хотите не отвечайте, я не топикстартер.

kasper ( 2012-09-05 13:04:36 +0400 )редактировать

Совет почитать можно относить не только к топикпастеру. Чем Вы мотивировали свой вопрос о нажатии кнопки Service на телефоне при входящем вызове?

zzuz ( 2012-09-05 13:09:48 +0400 )редактировать

Вопрос мотивирован надеждой что можно инициировать запуск xml сервиса на моём 7940 входящем звонком, а не нажатием кнопки.

kasper ( 2012-09-05 13:17:36 +0400 )редактировать

Есть у меня такое подозрение , что сейчас речь идет о разных моделях телефонов, не так ли?

zzuz ( 2012-09-05 13:42:46 +0400 )редактировать

О разных, но оба циско, у обоих есть xml service, и если узнать способ для одного то можно сделать хороший гуглозапрос что бы определить есть ли подобное у другого. Максимум что я слышал это запуск xml по sip notify для spa серии.

kasper ( 2012-09-05 13:54:57 +0400 )редактировать

ага. 7940 разработки циско, spa502 разработка sipura. 7940 разработан лет 9 назад. конечно они одинаковы. я с 7940 работал еще после универа. ему точно больше 9 лет.

meral ( 2012-09-05 14:32:19 +0400 )редактировать

Я где то написал что они одинаковы, я написал хороший гуглозапрос. meral раз уж вы тут, раскроете по подробнее свою идею?

kasper ( 2012-09-05 14:36:08 +0400 )редактировать

на 7940 работать не будет.на 502м вроде можно входящий реквест на отображение запрашивать. но кстати оба поддерживают запрос скрипта по services. и ничто вам не мешает давать разный скрипт в зависимости от текущего звонка.

meral ( 2012-09-05 14:48:23 +0400 )редактировать
0

у cid два значения.

callerid(name)
callerid(num)

вот unknown у вас походу второй.

правильно задействовать встроенный xml и выводить с его помощью.

в вашем случае это fwrite(STDOUT, "SET CALLERID $cid \"$name_here\"\n");

а вообще откройте для себя function REALTIME можно это все сделать без php

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

ответил 2012-09-04 16:28:50 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2012-09-04 16:30:16 +0400

Ваш ответ

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 ленту новостей

Статистика

Задан: 2012-09-04 15:12:24 +0400

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

Обновлен: Sep 04 '12

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