VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Необходимо напистать простую программу pjsip

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

ingfa
Сообщения: 46
Зарегистрирован: 20 июл 2014, 01:30

Необходимо напистать простую программу pjsip

Сообщение ingfa »

Необходима ваша помощь в написании кусочка кода для программы, которая звонила бы на определенный номер sip и проигрывала туда файл wav
бросала трубку через 30 сек. пример кода необходим на python 2.7.6. на сайте модуля нашел только пример кода для проигрывания на проигрыватель. http://www.pjsip.org/pjmedia/docs/html/ ... file_c.htm
denis21
Сообщения: 33
Зарегистрирован: 17 июн 2014, 20:28

Re: Необходимо напистать простую программу pjsip

Сообщение denis21 »

Но если это не в целях спама, а в целях, например, вызвал человек такси, машина приехала. Приходит дозвон клиенту, мол выходите?)
Или, таксист заблудился, (Ну реально, на практике бывают хоть и редко такие вещи даже с навигатором) сообщает об этом в диспетчерскую, а на диспетчерской идёт дозвон клиенту, сообщается, "сейчас вы будете соединены с водителем"...
Автоматизация таких задач классно экономит время самих диспетчеров, которые за место ручного дозвона могут принимать новые заказы.
Я бы лучше сказал, это слишком индивидуальные решения, которые, соглашусь, распространять не стоит свободно.
ingfa
Сообщения: 46
Зарегистрирован: 20 июл 2014, 01:30

Re: Необходимо напистать простую программу pjsip

Сообщение ingfa »

Нет это система оповещения о неисправности, на оборудовании связи. А конкретно задумка такая. Если на электропитающей установке имеется авария то программа формирует звонок через ip атс оперативному персоналу. 1 номер и много wav файлов.
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Необходимо напистать простую программу pjsip

Сообщение zzuz »

Пример на основе библиотеки pyst

Код: Выделить всё

from asterisk import agi,manager
def call(out_num,out_context,in_num,in_context,in_prio='1',vars=[]):
  m=manager.Manager()
  m.connect('localhost')
  m.login('admin',get_conf())
  cdict={"Action": "Originate",
  'Channel': 'Local/%s@%s/n' % (out_num,out_context),
  'exten' : '%s' % (in_num),
  'context' : '%s' % (in_context),
  'priority' : '%s' % (in_prio),
  'async' : 'False',
  'Variable' : vars,
  }
  call=m.send_action(cdict)
  m.close()
  return call
вызов

Код: Выделить всё

call(NUM,'out_context','s','play')
в диаплане

Код: Выделить всё

[play]
exten => s,1,Answer()
exten => s,n,Playback(...)
Линия24 - Системы Массового Телефонного Обслуживания
ingfa
Сообщения: 46
Зарегистрирован: 20 июл 2014, 01:30

Re: Необходимо напистать простую программу pjsip

Сообщение ingfa »

Я так понимаю соединение идет через manager, логин admin а где же пароль?
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Необходимо напистать простую программу pjsip

Сообщение zzuz »

Код: Выделить всё

def get_conf(m_conf='/etc/asterisk/manager.conf'):
  conf=ConfigParser()
  conf.read(m_conf)
  return conf.get('admin','secret')
Линия24 - Системы Массового Телефонного Обслуживания
ingfa
Сообщения: 46
Зарегистрирован: 20 июл 2014, 01:30

Re: Необходимо напистать простую программу pjsip

Сообщение ingfa »

А если порт отличный от 5038, он что читается из manager.conf?
И такой вопрос, если пароль читаем из manager.conf, то если мне необходимо запустить программу не на машине с астериском, мне его нужно скопировать (manager.conf)?
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Необходимо напистать простую программу pjsip

Сообщение zzuz »

Внесите необходимые изменения в функции. Класс Manager() позволяет переопределять порт. Необязательно использовать файл manager.conf . можете использовать любой другой. Направление я Вам подсказал.
Линия24 - Системы Массового Телефонного Обслуживания
ingfa
Сообщения: 46
Зарегистрирован: 20 июл 2014, 01:30

Re: Необходимо напистать простую программу pjsip

Сообщение ingfa »

У меня такие к вам вопросы
Что мы передаем функции call в качестве параметров и аргументов?
что мы передаем функции get_conf в качестве параметров и аргументов, и почему она возвращает две строки 'admin','secret' если в функции call есть такая запись m.login('admin',get_conf()) ???
Каким образом идет считывание файла manager.conf, зачем это делается вообще?
Где передается номер на который необходимо звонить, номер через который звонить, канал через который звонить??
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH