Поиск

Техническая помощь

Вы не зарегистрировались в систеие - вход
НА ВХОДЯЩЕМ ФАКСЕ НЕТ НОМЕРА ОТПРАВИТЕЛЯ
Q У нас работает созданное нами приложение по приему факсов в папку. Факсы сохраняются в формате tif с заданным именем. Возможно ли средствами Smartphone Server присвоить факсу ANI (номер отправителя). Например, в самом факсе (tif файле) или в имени файла? Нам требуется знать точный номер отправителя факса. В поле факса указывается номер, но он задается пользователем и не всегда является точным ANI.
A Да, можно. В языке сценариев есть глобальная переменная ANI, в нее попадает ANI полученное из потока. Можете использовать его для назначения имени файла.
Q Спасибо большое. А можно запретить с определенного номера прием факсов в папку (задать черный список) ?
A Конечно. Создаете таблицу в базе данных, например Microsoft Access, вносите список номеров с которых прием факса запрещен, и в своем сценарии при приходе вызова проверяете по таблице, разрешен прием факса или нет.
ФУНКЦИЯ LOAD_VAP
Q В блоке ветвления 1 цифре должен соотвествовать переход на функцию Load_vap с целью задействования другого vap файла. В инструкции указанно что для этого можно задействовать функцию int load_vap (string alias, string um.vap), но как правильно ее задействовать? Помогите пожалуйста на примерах.
Q В блоке ветвления 1 цифре должен соотвествовать переход на функцию Load_vap с целью задействования другого vap файла. В инструкции указанно что для этого можно задействовать функцию int load_vap (string alias, string um.vap), но как правильно ее задействовать? Помогите пожалуйста на примерах.
A А для каких целей необходимо использовать именно load_vap? В документации сказано: Данная функция предназначена для использования с такими Звуковыми приложениями, которые будут часто выполняться. Однако на их загрузку и установку и/или закрытие их рабочей среды требуется значительное время (такие, как “Unified Messaging.vap”). Теперь такие Звуковые приложения могут быть загружены и инициализированы только однажды и с помощью функции call_vap в случае необходимости могут быть выполнены в любое время без задержки. Но если хотите пример, то так: int myvap = load_vap("MyVap", "test.vap"); естественно сценарий test.vap должен существовать. Полный текст справки привожу ниже ... Функция Load_vap int load_vap(string alias, string vap_file_name); Загружает Звуковое Приложение (ЗП) из указанного на диске файла в память и связывает с ним указанный псевдоним ЗП, которым теперь могут многократно пользоваться другие функции для вызова данного Звукового приложения. Возвращаемое значение (integer) true: ЗП загружено успешно false: Ошибка при загрузке ЗП Параметры alias: (string) символическое имя, с помощью которого загруженное ЗП может быть теперь распознано среди других функций. vap_file_name: (string) допустимый путь и имя файла для ЗП, который будет загружен. Если указанная строка не является полным путем к файлу, то он будет рассматриваться относительно папки с текущим ЗП. Примечания Данная функция предназначена для использования с такими Звуковыми приложениями, которые будут часто выполняться. Однако на их загрузку и установку и/или закрытие их рабочей среды требуется значительное время (такие, как “Unified Messaging.vap”). Теперь такие Звуковые приложения могут быть загружены и инициализированы только однажды и с помощью функции call_vap в случае необходимости могут быть выполнены в любое время без задержки. Вызов этой функции с именем файла ЗП, который еще не был загружен и с именем, которое уже назначено на загруженное ЗП, переадресует имя к вновь загружаемому ЗП и выгрузит то ЗП, которому данное имя было присвоено прежде.
ИСХОДЯЩИЕ ЗВОНКИ
Q В рамках одного VAPa линии работают как входящие и как исходящие. При входящих звонках слушаются сообщения по выбору, а при запросе в базу данных и при наличии нужных параметров нужно чтобы был выполнен исходящий набор, произведен контроль линии (занято, не отвечает, и т.д) и при занятии линии на удаленном конце проиграть нужное сообщение. Не можем найти информацию и примеры настроек для занятия, контроля и выполнения сценария для исходящей связи. Если можно, подскажите где почитать и если можно примеры..... Заранее благодарен!
A В рамках одного вапа это не сделать. По своим свойствам вап может быть либо для исходящих вызовов, либо для входящих, это определяется настройками стартового блока. Соответственно необходимо иметь как минимум две линии, одна из которых будет работать на прием и обработку вызова, а вторая будет делать исходящие вызовы. Документация с примерами есть в дистрибутиве.
SMS
Q В рамках поставленной задачи необходимо кроме голосового сервиса сканировать GSM-модем на наличие входящих сообщений. Вобщем все работает, но в определенные моменты (видимо из-за проблем со связью) все зависает. Снял пин-код - проблемы с зависанием софта отпали, но при отправке SMS - ошибка \"E-ERROR\", входящие SMS вообще не читаются... до перезапуска ЗП... через некоторое время опять все не ОК...
A К сожалению, без ПИН кода работать не будет.
Q Но работает же! Проблема в том что в какой-то определенный момент по непонятным причинам AT+CMGL="REC READ" и AT+CMGL="REC UNREAD" возвращают ERROR, причем на номер в этот момент ничего не поступало. Отправка SMS в это время работает работает без проблем. Кстати если ПИН установлен - виснет SmartPhone. После перезапуска приложения все работает до следующего инцидента (от 2 до 5 часов). Проблема решилась бы если бы была возможность управления модемом AT-командами, либо передернуть модем из приложения. Есть ли какие-либо недокументированные возможности? Вначале грешил на операционку - проверено на 5 станциях с ОС Win2000, Windows Server 2003, Windows XP - результат везде одинаковый. Сканирование портов проводил неделю - инцидент возникает стабильно через несколько часов после запуска приложения.
A Если подключаетесь по RDP к серверу, где установлен Смартфон, убедитесь, что сессия не занимает com порт. В таком случае Смартфон действительно можно "подвесить". Если хотите принимать sms сообщения, то применяйте фукцию sms_recv() из примера ниже: string sms, sms_text, sms_from, sms_dt, sms_id; //sms = SMS_send( "+79031234567", "Тестовое сообщение"); //log(sms); //sleep(5); while(!ishangup()) { sms = sms_recv(); if (sms!="") { log(sms); } sleep(2); } /* sms_recv(string transport='') возвращает sms строку, если нет сообщений. смс сообщение можно разобрать с помощью sms_prop(string sms_message, string prop_name) возвращает значение проперти проперти такие: from, body, dt, id */
Q Не совсем то что хотел узнать. Вообщем случился какой-либо сбой (в канале GSM, питание и т.д.) - модем (в частности мы используем модем на базе siemens mc39i) выполнил аппаратный сброс, так как инициализация заново не была выполнена на попытки чтения входящих смс модем возвращает error, функция sms_recv() возвращет пустую строку даже при наличии входящих смс!!! из скрипта переинициализировать можно через WinExec и sms_serv -stop... но проблема в том что из скрипта невозможно определить результат чтения смс (результат выполнения команды AT+CMGL).
A Если сбоит модем, то предсказать как будет работать весь комплекс невозможно. Сценарий который я вам выслал стоит у заказчика больше года на helpdesk и нареканий нет. А как вы определяете что посылает sms_serv?
Q С помощью HHD Serial Monitor. Могу прислать лог мониторинга. После опроса модема на предмет входящих стопаю sms_serv. В принципе проблема решена пусть не самым красивым решением. Еще один маленький вопрос - как сделать приложение которое выполняется непрерывно независимо от "Настройка->Параметры звукового приложения->Максимальная длительность работы приложения" В данный момент Запускается с помощью 24-х стартовых блоков настроенных на время запуска с интервалом 1 час и работает по одному часу.
A Если вы применяете "задачный" интерфейс, т.е. в интерфейсе Смартфона выведены не линии а сценарии, то для вашего сценария пометьте галку "Служебное ЗП"
Q Нет! Проблема не в этом! Рассмотрим пример: Добавляем блок вызова сценария. В окне редактирования вводим единственную строку Log($datetime); Обычный выход и выход по ошибке блока соединяем со входом. Добавляем стартовый блок. В настройках указывать"Отвечать на звонок после ХХ гудков" ставить бесмысленно, так как наше приложение - задачное. Остается только "Запускать в установленное время" и ставим время к примеру 8:00. Выход блока соединяем со вхоодом блока сценария. В настройках параметров приложения число экземпляров - 1, отмечаем "Служебное ЗП" и "Авт.запуск". Это простейшее приложение работает без проблем ЕСЛИ СТАРТОВАТЬ С 8:00 до 8:59! Если стартовать в другое время - то завершается сразу же после запуска Вопрос состоит в том что "ЧТО СДЕЛАТЬ ЧТОБЫ ПРИЛОЖЕНИЕ РАБОТАЛО НЕЗАВИСИМО ОТ ВРЕМЕНИ ЗАПУСКА"
A Откройте на редактирование стартовый блок, удалите время в поле ввода Время запуска, снимите галку Служебное ЗП в свойствах сценария. Также в правилах активации в полях начало и завершение должны стоять нули (00:00).
Q Спасибо!
A Пожалуйста, удачи.
СЛУЖЕБНОЕ ЗП
Q Спасибо за замечательный продукт, но к сожалению документация описывает не все, в частности почти ничего нет по служебным ЗП. В частности интересует вопрос: как организовать служебное ПО чтобы оно запускалось автоматически после запуска смартфон-сервера. Если в стартовом блоке указать запускать в определенное время - стартует только в это время, если указать отвечать после звонка - также не то что нужно. Суть такова - запустили смартфон сервер, автоматически стартовало основное ЗП (галку \"Авт. запуск\" установил), и паралельно запустилось служебное ЗП, которое в бесконечном цикле выполняет какие-то действия (например сканировало каталог на предмет наличия определенных файлов). Заранее спасибо
A Здравствуйте. Чтобы ЗП (любое, не только служебное) запускалось автоматически после старта Смартфона, надо в его свойствах отметить галочкой "Авт. запуск" и сохранить эту настройку в самом приложении Смартфон кнопокой "Сохранить настройку"
Q Эта галочка стоит, вопрос в другом - как оформить стартовый блок - если установить "запускать в указанное время" - то все работает отлично если стартовать в период с XX:00 до XX:59 (где XX - час запуска), иначе служебное приложение завершается сразу же после запуска
A Если вам надо, чтобы ваше ЗП работало бесконечно после запуска, тогда в вашем ЗП должен быть задан бесконечный цикл.
| 1 | 2 | 3 |
Copyright © 2010-2017 NOVAVOX