Список форумов Asterisk Forum Asterisk Forum
The Asterisk Open Source PBX - Russian Community
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ПравилаПравила   ГруппыГруппы   ИзбранноеИзбранное    LinksСсылки   РегистрацияРегистрация 
 RSSRSS   Web ChatChat   EmailEmail   ПрофильПрофиль   Войти и проверить личные сообщения   ВходВход 

T38modem->SIP(любой сервер), регистрация и авторизация

 
Список форумов Asterisk Forum -> Asterisk IP PBX    вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Чт Сен 18, 2008 01:53    Заголовок сообщения: T38modem->SIP(любой сервер), регистрация и авторизация

Мы добавляем в T38modem возможность сообщать SIP-серверу пароль, предложенный способ конечно кривоватый, полагаю автор программы сумеет добавить эту возможность более грамотным способом.
WIN:
C:\opal\src\sip\sipcon.cxx
Linux:
root/opal/src/sip/sipcon.cxx
Приблизительно со строки 2719
Код:
// Try to find authentication parameters for the given realm,
  // if not, use the proxy authentication parameters (if any)
  if (!endpoint.GetAuthentication(auth.GetAuthRealm(), authentication)) {
    PTRACE (3, "SIP\tCouldn't find authentication information for realm " << auth.GetAuthRealm() << ", will use SIP Outbound Proxy authentication settings, if any");
    if (!endpoint.GetProxy().IsEmpty()) {
      authentication.SetUsername(endpoint.GetProxy().GetUserName());
      authentication.SetPassword(endpoint.GetProxy().GetPassword());
    }
    else {
      releaseMethod = ReleaseWithNothing;
      Release(EndedBySecurityDenial);
      return;
    }
  }

меняем на
Код:
// Try to find authentication parameters for the given realm,
  // if not, use the proxy authentication parameters (if any)
  if (!endpoint.GetAuthentication(auth.GetAuthRealm(), authentication)) {
    PTRACE (3, "SIP\tCouldn't find authentication information for realm " << auth.GetAuthRealm() << ", will use SIP Outbound Proxy authentication settings, if any");
    if (!endpoint.GetProxy().IsEmpty()) {
      authentication.SetUsername(endpoint.GetProxy().GetUserName());
      authentication.SetPassword(endpoint.GetProxy().GetPassword());
    }
    else {
      authentication.SetUsername("MyUserName"); //or sip-id
      authentication.SetPassword("MyPassword");
//      releaseMethod = ReleaseWithNothing;
//      Release(EndedBySecurityDenial);
//      return;
    }
  }

Пересобираем OPAL
WIN:(Microsoft Visual C++ 2005 Express Edition )
Код:
File->Open->Project/Solution->C:\opal\opal_samples_2005.sln
Solution Configurations: Release Win32
OPAL Static->Clean...
OPAL Static->Build...
OPAL_dll->Build...
File->Close Solution

Библиотеку opal.dll кладем в папку с модемом.
LINUX:
Код:
cd /root/opal
make
make install
ldconfig


Предварительные тесты показали:
1)AXON PBX (и все что за ним, т.е.сипнет,pulver и т.п.) OK!-проблема решена полностью
2)SIPNET звонок прошел при условии username=SIP-ID@sipnet.ru, трюк @sipnet.ru известный, но факса я не слышал, и звонок оборвался через несколько секунд, что-то там не состыковалось, в принципе понятно -ему регистрацию подавай, это я из конфига AP200B давно понял (там sipnet в sip-ua надо обязательно писать!).
3) pulver.com хотел попробовать на какой-нибудь +1-800 факс, но вышел облом-не знаю(или не помню) как набрать звездочку модемом.


Последний раз редактировалось: Дима77 (Вт Сен 23, 2008 23:44)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Чт Сен 18, 2008 15:01    Заголовок сообщения:

Вариант №2 (более грамотный).
Да, OPAL конечно так грубо портить нехорошо:

1) OPAL не трогаем
2)C:\t38modem\opal\sipep.cxx
примерно line 157:
Код:
BOOL MySIPEndPoint::Initialise(const PConfigArgs & args)
{
  AddMediaFormatList(OpalG711_ULAW_64K);
  AddMediaFormatList(OpalG711_ALAW_64K);
  AddMediaFormatList(args.HasOption("sip-old-asn") ? OpalT38_IFP_PRE : OpalT38_IFP_COR);
  //AddMediaFormatList("UserInput/basicString");
...

замена
Код:
BOOL MySIPEndPoint::Initialise(const PConfigArgs & args)
{
  if (args.HasOption("username")) {
   if (args.HasOption("secret")) {
     if (args.HasOption("hostname")) {
      SetProxy(args.GetOptionString("hostname"),args.GetOptionString("username"),args.GetOptionString("secret"));
     }
   }
  }
  AddMediaFormatList(OpalG711_ULAW_64K);
  AddMediaFormatList(OpalG711_ALAW_64K);
  AddMediaFormatList(args.HasOption("sip-old-asn") ? OpalT38_IFP_PRE : OpalT38_IFP_COR);
  //AddMediaFormatList("UserInput/basicString");
...

3)C:\t38modem\opal\manager.cxx
примерно line 50
Код:
PString MyManager::ArgSpec()
{
  return
    MyH323EndPoint::ArgSpec() +
    MySIPEndPoint::ArgSpec() +
    ModemEndPoint::ArgSpec() +
    "-ports:"
    "-route:"
    "u-username:"
/*

замена
Код:
PString MyManager::ArgSpec()
{
  return
    MyH323EndPoint::ArgSpec() +
    MySIPEndPoint::ArgSpec() +
    ModemEndPoint::ArgSpec() +
    "-ports:"
    "-route:"
    "u-username:"
    "s-secret:"
    "q-hostname:"
/*

И чуть ниже в этом же файле добавляем описание для help:
Код:
     "                              of a pat=dst route specification.\n"
      "  -u --username str         : Set the default username to str.\n"
      "  -s --secret str           : Set password to str.\n"
      "  -q --hostname str         : Set hostname to str.\n"
/*

4) пересобираем T38modem, это недолго.

Ну а запускаем вот так вот:
t38modem.exe -tt --no-h323 -u username -s password -q "provider.com:5060" --sip-old-asn --sip-listen udp$192.168.11.2:6060 --sip-redundancy 2 -p \\.\CNCB1,\\.\CNCB2 --route "modem:.*=sip:<dn>@provider.com:5060" --route "sip:.*=modem:<dn>"
Варианты
provider.com =ваш внешний сип-провайдер
=ваш PBX (уже не обязательно Asterisk)

P.S. Этот вариант не работает с сипнет; вопрос регистрации модема еще не решен. В остальном вариант рабочий.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Вт Сен 23, 2008 23:39    Заголовок сообщения:

Удалось добавить "Регистрацию на сип-сервере" для модема:
Сперва в \opal\src\sip\sipep.cxx нарыл вот это дело:
Код:
public BOOL Register(const PString & host, const PString & user, const PString & autName, const PString & password, const PString & authRealm, unsigned int expire, const PTimeInterval & minRetryTime, const PTimeInterval & maxRetryTime)
    Member of SIPEndPoint
public BOOL Register(unsigned int expire, const PString & aor, const PString & authName, const PString & password, const PString & authRealm, const PTimeInterval & minRetryTime, const PTimeInterval & maxRetryTime)
    Member of SIPEndPoint
Summary:
*Register to a registrar. This function is asynchronous to permit * several registrations to occur at the same time. It can be * called several times for different hosts and users. * * The username can be of the form user@domain. In that case, * the From field will be set to that value. * * The realm can be specified when registering, this will * allow to find the correct authentication information when being * requested. If no realm is specified, authentication will * occur with the "best guess" of authentication parameters.

Далее порылся в кодах EKIGA и OPENPHONE, дабы "ознакомиться с примерами".
Потом пошел "портить" модем: в файле \t38modem\opal\sipep.cxx
в конец ф-ции BOOL MySIPEndPoint::Initialise(const PConfigArgs & args) перед словами "return TRUE;"
дописал вот ето:
Код:
    Register(args.GetOptionString("hostname"), args.GetOptionString("username"), args.GetOptionString("username"), args.GetOptionString("secret"),args.GetOptionString("hostname"),1800);
    cout << "SIP registration started for " << args.GetOptionString("username") << '@' << args.GetOptionString("hostname") << endl;

Потом настроился на астериск и прочитал там вот ето:
Код:
   -- Registered SIP 'T38modem' at 192.168.11.2 port 2122 expires 1800
    -- Saved useragent "OPAL/2.0" for peer T38modem

Оно меня вполне удовлетворило и порадовало. Smile
Также удалось наблюдать регистрацию модема на AXON PBX и на SIPNET.ru
Однако все же решение половинчатое, ибо конструкция вида:
Код:
Register ("192.168.11.1:5063","user","user","password","192.168.11.1:5063",1800);

не работает как хотелось бы, модем тупо лезет регистрироваться на удаленный порт 5060 обозначенного сервера, игнорируя инструкцию ":5063"
А где этот remotePort задать я не нашел, хотя та же EKIGA это делать умеет. Sad
P.S. Попутно до меня доперло, что авторизация (без регистрации) возможна и с пустым паролем, однако модем должен его сообщать в виде password="" ,а он в оригинальной версии этого не делает.
Отмечу также, что конкретно СИПНЕТ даже с зарегистрированным модемом и даже на прямом ip работать отказывается (какие-то медиа-проблемы при установке звонка, тишина и обрыв связи через 5-6сек), хотя отлично работает через любого посредника (Asterisk,AXON).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Чт Сен 25, 2008 01:20    Заголовок сообщения:

Дима77 писал(а):
Однако все же решение половинчатое, ибо конструкция вида:
Код:
Register ("192.168.11.1:5063","user","user","password","192.168.11.1:5063",1800);

не работает как хотелось бы, модем тупо лезет регистрироваться на удаленный порт 5060 обозначенного сервера, игнорируя инструкцию ":5063"
А где этот remotePort задать я не нашел, хотя та же EKIGA это делать умеет.
Sad

О!Гы... Smile Значит так:
c:\opal\src\sip\sharedtransports.cxx
Код:
SharedTransport::SharedTransport (const PString k, SIPEndPoint & ep)
: endpoint (ep), key (k)
{
  WORD port = 5060;
  PWaitAndSignal m(transportMutex);

  OpalTransportAddress transportAddress(key, port, "udp");
  transport = endpoint.CreateTransport(transportAddress);
  if (transport == NULL) {
    PTRACE(2, "SIP\tUnable to create transport for registrar");
  }
  referenceCount = 0;
}
И с удовольствием пишем WORD port = 5063;.
Ну а дальше Build-Build и требуемый opal готов к эксплуатации, модем можно не трогать. Естественно он теперь будет регистрироваться только на 5063, или чего напишите. Кривовато конечно, но я не нашел какую ф-цию и как надо вызывать,по идее Register должно быть достаточно, м.б. это даже недоработка OPAL, Ekiga то регистрируется, но она использует более поздние версии OPAL, м.б. там это и исправлено, там ф-ция Register вообще по-другому написана. А м.б. у меня руки криво заточены, м.б. позже пойму как это грамотнее сделать. Да и так неплохо.
Итого, имеем полноценного многолинейного SIP-клиента (под Линукс и Windows), кот. умеет регистрироваться на произвольном порту произвольного SIP-сервера, авторизовываться по паролю, ах, ну да, совсем забыл, еще какие-то факсы умеет слать по какому-то T38, при этом еще модемом прикидывается. Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
anest
admin


Зарегистрирован:
28.11.2004
Сообщения: 5699
Откуда: localhost

Статус: Оффлайн 

СообщениеДобавлено: Чт Сен 25, 2008 05:52    Заголовок сообщения:

найдите как передавать в код параметры запуска из командной строки
например:
proga param1 param2
другими словами в коде нужно добавить чтоб значение это бралось из param2 например и да будет вам щастье (и нам всем тоже)!
еще можно сделать что если этот параметр не задан в строке запуска то ставить значение по умолчанию в 5060

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Jabber ID
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Чт Сен 25, 2008 08:31    Заголовок сообщения:

Ну, понятно, что другой порт лучше назначать из кода T38modem, не трогая opal вообще, с авторизацией мне это удалось.
Ну хорошо, смотрите.
(В опал мы вообще не лезем, правим только модем, т.е. ф-цию MySIPEndPoint::Initialise(const PConfigArgs & args) в c:\t38modem\opal\sipep.cxx)
Параметры T38modem:
-u username //он и так там был (="100")
-s secret //добавил (="100")
-q hostname //добавил (="192.168.11.1:5065")
Я вызываю регистрацию из ф-ции инициализации sipendpoint грубо говоря так:
Register (hostname, user, user, password, hostname, expire);
Давайте я уберу параметры и напишу в явном виде:
Register ("192.168.11.1:5065","100","100","100","192.168.11.1:5065",1800);
Давайте перед Register добавим еще одну ф-цию CreateTransport, т.е. получим
Код:
CreateTransport("udp$192.168.11.1:5065",false);
Register ("192.168.11.1:5065","100","100","100","192.168.11.1:5065",1800);

OK, запускаем модем с параметром --ttttt (побольше уровень дебага) и видим следующее...
Код:
2008/09/25 10:25:54.656     T38Modem    OpalUDP Binding to interface: 192.168.11.2:3004
2008/09/25 10:25:54.656     T38Modem    SIP     Created transport udp$0.0.0.0<if=udp$192.168.11.2:3004>
2008/09/25 10:25:54.656     T38Modem    OpalUDP Started connect to 192.168.11.1:5065
2008/09/25 10:25:54.656     T38Modem    OpalUDP Connect on pre-bound interface:192.168.11.2
2008/09/25 10:25:54.656 SIP Transp...ort:bb7770 SIP     Read thread started.
2008/09/25 10:25:54.656 SIP Transp...ort:bb7770 SIP     Waiting for PDU on udp$192.168.11.1:5065<if=udp$192.168.11.2:3005>
2008/09/25 10:25:54.671     T38Modem    OpalUDP Binding to interface: 192.168.11.2:3006
2008/09/25 10:25:54.671     T38Modem    SIP     Created transport udp$0.0.0.0<if=udp$192.168.11.2:3006>
2008/09/25 10:25:54.671     T38Modem    OpalUDP Started connect to 192.168.11.1:5060
2008/09/25 10:25:54.671     T38Modem    OpalUDP Connect on pre-bound interface:192.168.11.2
2008/09/25 10:25:54.671     T38Modem    SIP     Created new transport for 192.168.11.1 : udp$192.168.11.1:5060<if=udp$192.168.11.2:3007>
2008/09/25 10:25:54.671 SIP Transp...ort:bd8ac0 SIP     Read thread started.
2008/09/25 10:25:54.671     T38Modem    SIP     Sending PDU on udp$192.168.11.1:5060<if=udp$192.168.11.2:3007>
REGISTER sip:192.168.11.1 SIP/2.0
Route: <sip:192.168.11.1:5065;lr>
CSeq: 1 REGISTER
Via: SIP/2.0/UDP 192.168.11.2:3007;branch=z9hG4bKb3e93263-9bfc-1810-99c7-0018f3f
51e98;rport
User-Agent: OPAL/2.0
From: <sip:100@192.168.11.1:5065>;tag=b3e93263-9bfc-1810-99c6-0018f3f51e98
Call-ID: 99e33263-9bfc-1810-99c6-0018f3f51e98@d
To: <sip:100@192.168.11.1:5065>
Contact: <sip:100@192.168.11.2:3007;transport=udp>
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,NOTIFY,REFER,MESSAGE,INFO,PING,PUBLISH
Expires: 1800
Content-Length: 0
Max-Forwards: 70

Обратите внимание, что CreateTransport("udp$192.168.11.1:5065") вызвал правильную реакцию:
Started connect to 192.168.11.1:5065
А потом очевидно Register сам вызвал CreateTransport но уже с неправильным портом (т.е.5060):
Started connect to 192.168.11.1:5060 (и мило шлет туда заголовки, предназначенные для 5065)
(уверен что мое описание верно,потому что если уберу из кода CreateTransport, то конструкция в дебаге 2 раза повторяться уже не будет).
А порт 5060 очевидно берется из той ф-ции что я поправил в опал в "предыдущем сообщении"
И я пока не могу понять, допускает ли эта ф-ция замену порта извне, по крайней мере очевидно, что если допускает, то он должен браться из ф-ции Register, м.б. я там hostname неправильно вставляю, но куда уж правильней. Ну, пробовал еще вот так вот
Register ("udp$192.168.11.1:5065","100","100","100","udp$192.168.11.1:5065",1800);
но это ничего не меняет.
Поэтому самым простым пока остается способ компилирования OPAL с другим портом (не так уж часто вы меняете порты и сервера), плохо конечно если у Вас OPAL параллельно используется для разных целей, ну в виндах напр. можно иметь несколько opal.dll (в PATH только не прописывать его).
P.S.Ну и не забываем, что вообще говоря оригинальным автором обещана новая версия модема, совместимая с "новым Opal", м.б.там какие-то вопросы уже будут решены.
Хотя как говорится "обещанного 3 года ждут". Ждем-с Rolling Eyes
------------------------------------
А вот еще, правка 5060->5063(5065) и т.д. в OPAL не портит его глобально, т.е. без исправлений можно использовать тот же модем для звонков на другой сервер на другой порт, она лишь меняет порт регистрации по умолчанию.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Вт Сен 30, 2008 21:58    Заголовок сообщения:

anest писал(а):
найдите как передавать в код параметры запуска из командной строки
например:
proga param1 param2
другими словами в коде нужно добавить чтоб значение это бралось из param2 например и да будет вам щастье (и нам всем тоже)!
еще можно сделать что если этот параметр не задан в строке запуска то ставить значение по умолчанию в 5060

Да будет всем счастье! Smile
Все-таки здесь разумно дописать одну строчку в OPAL, а параметры я правильно задавал.
ep.GetProxy().GetPort() возвращает корректное значение, если порт не указан, он равен 5060
c:\opal\src\sip\sharedtransports.cxx
Код:
SharedTransport::SharedTransport (const PString k, SIPEndPoint & ep)
: endpoint (ep), key (k)
{
  //192.168.11.1:5065
  //cout << "SIP-server:" << ep.GetProxy().GetHostName() << endl;  //==192.168.11.1
  //cout << "REmote port:" << ep.GetProxy().GetPort() << endl; //==5065
  WORD port = ep.GetProxy().GetPort();
  PWaitAndSignal m(transportMutex);
  OpalTransportAddress transportAddress(key, port, "udp");
  transport = endpoint.CreateTransport(transportAddress);
  if (transport == NULL) {
    PTRACE(2, "SIP\tUnable to create transport for registrar");
  }
  referenceCount = 0;
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Пт Окт 10, 2008 11:26    Заголовок сообщения:

Счастье все-таки неполное. Exclamation Question
Код:
Register ("192.168.11.1:5063","user","user","password","192.168.11.1:5063",1800);

хоть и регистрирует модем, но через какое-то время на "зарегистрированный" модем -как правило минут несколько звонки проходить перестают.
Или надо сервер этой командой долбить каждую минуту по циклу?
Собственно, в случае PBX регистрация лишняя, всегда можно прописать статический маршрут на ip-адрес модема, и это надежно.
А если он напрямую на провайдере сидит, то для входящих это уже критично будет.
//Спецы, если можно подкиньте немного теории, в опал по идее не единственная ф-ция за регистрацию отвечает, есть, напр. IsRegistered...
P.S. Ну т.е. у меня получается, что одна единственная команда Register дается один раз при старте системы, т.е. при инициализации SIP, я уже задумался. но с др.стороны 1800/60=30минут -и полчаса сервер должен помнить, что модем находится там-то и там-то, а забывчивость наступает гораздо быстрее.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
morion



Зарегистрирован:
30.10.2008
Сообщения: 7

Статус: Оффлайн 

СообщениеДобавлено: Вт Дек 30, 2008 07:13    Заголовок сообщения:

Добрый день Дима77.
Для меня сейчас авторизация актуальный вопрос. Надо в модем еще один цикл написать или еще один поток запустить, который будет отвечать за авторизацию, т.е. слать Register через expire time. А то что у вас PBX забывает про модем не через 30 минут, а раньше - это бага. Или модем и станция договариваются о другом времени, например 240.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Пт Янв 09, 2009 11:27    Заголовок сообщения:

Этот вопрос уже решен.
1. Идете на http://sourceforge.net/projects/opalvoip, скачиваете ptlib trunk + opal trunk
(если проблемы все же возникнут,в крайних ptlib mergsym выдает ошибку, берете версию trunk от конца декабря)
2. Далее на http://sourceforge.net/projects/t38modem/ скачиваете t38modem trunk (спасибо Вячеславу Фролову)
3. Компилируете все это хозяйство, таких проблем как со старым t38modem уже не возникает, под линуксом успеха не гарантирую, но под win все должно быть OK, разработчики OPAL похоже линукс более не уважают, мне кстати линукс уже тоже надоел.
4. Внимательно изучаете код файла main.cxx в примере FaxOpal (в Opal/samples). Господин Robert Jongbloed (под моим настойчивым влиянием, спасибо и ему также) в декабре дописал туда правильный код регистрации через SIPRegister::Params structure+ ф-цию SetProxy, а также исправил в Opal баг с регистрацией на нестандартном порту, в общем много хорошего было сделано.
5. Переносите этот код в секцию инициализации SIP в T38modem, ну, добавляете по аналогии необходимые параметры.

И все у вас будет хорошо, и никаких "циклов дописывать" не надо Smile
Скажем так, та версия OPAL, мною тут описанная, с кот. единственной с большими напрягами компилировался ранее T38modem вообще "левая", и когда мной было заявлено о том, что я менял в файле c:\opal\src\sip\sharedtransports.cxx, были сделаны "большие глаза" типа "Что ето за файл такой? Не было его у нас никогда!" И его там действительно нет: http://opalvoip.svn.sourceforge.net/view ... k/src/sip/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mirror



Зарегистрирован:
21.03.2009
Сообщения: 1

Статус: Оффлайн 

СообщениеДобавлено: Сб Мар 21, 2009 16:05    Заголовок сообщения:

Дима77 писал(а):

5. Переносите этот код в секцию инициализации SIP в T38modem, ну, добавляете по аналогии необходимые параметры.

Есть несколько вопросов, если позволите Smile
Я тут пытаюсь скрестить t38modem, правда не с asterisk, а с cisco call manager. Прака, правда, не получилось толком Sad
Будем с нашим цисководом в понедельник продолжать бодаться.
Я пытался поднять по h.323 а возможность нормальной авторизации по sip возможно мне бы помогла.
В связи с чем несколько вопросов.
1) Правильно ли я понимаю, что в связи с сообщениями в этой ветке часть инструкций из ветки http://www.asteriskforum.ru/viewtopic.php?t=2821 терфет свою актуальность?
2) Не могли бы Вы выдать уже пропатченные варианты библиотек? А то, чесно говоря, для меня, например, не совсем очевидна отквоченная мною сверху инструкция. Sad
Кста. А чем вызвано невыкладывание готовых уже собранных файлов?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Сб Мар 21, 2009 17:20    Заголовок сообщения:

mirror писал(а):

Я пытался поднять по h.323 а возможность нормальной авторизации по sip возможно мне бы помогла.
В связи с чем несколько вопросов.
1) Правильно ли я понимаю, что в связи с сообщениями в этой ветке часть инструкций из ветки http://www.asteriskforum.ru/viewtopic.php?t=2821 терфет свою актуальность?
2) Не могли бы Вы выдать уже пропатченные варианты библиотек? А то, чесно говоря, для меня, например, не совсем очевидна отквоченная мною сверху инструкция. Sad
Кста. А чем вызвано невыкладывание готовых уже собранных файлов?

h323-забудьте как страшный сон, в Opal уже давно все испорчено, т.к. я не понимаю идеологии h323, то вести переписку с разработчиками на эту тему не буду.
1) нет, для той версии все хорошо, но она морально устарела и там куча глюков.
2)mirror, вы предлагаете выполнить за вас работу. Пишите в личку, м.б. и родим какое решение. Или пользуйтесь уже опубликованными "благотворительными" Open Source лекциями, сказанного с избытком достаточно чтобы все сделать самому. Без обид.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vladimir



Зарегистрирован:
02.12.2004
Сообщения: 34
Откуда: Moldova

Статус: Оффлайн 

СообщениеДобавлено: Ср Май 13, 2009 07:40    Заголовок сообщения:

я гдето выкладывал собраный т38модем. поищи по форуму.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Телефон
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Ср Май 13, 2009 09:12    Заголовок сообщения:

Тот модем старой версии. И его кстати собрать было очень тяжело. А он хотел чтобы ему переписанные, а еще лучше откомпилированные коды на блюдечке выложили. А это неправильно такие вещи в готовом виде выкладывать. Хотя в текущем транке все авторизации уже и так есть, надо только аккуратно откомпилировать и изучить синтаксис командной строки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreyals



Зарегистрирован:
01.10.2009
Сообщения: 15

Статус: Оффлайн 

СообщениеДобавлено: Чт Окт 01, 2009 23:15    Заголовок сообщения:

[quote="Дима77"]Этот вопрос уже решен.
1. Идете на http://sourceforge.net/projects/opalvoip, скачиваете ptlib trunk + opal trunk
(если проблемы все же возникнут,в крайних ptlib mergsym выдает ошибку, берете версию trunk от конца декабря)
2. Далее на http://sourceforge.net/projects/t38modem/ скачиваете t38modem trunk (спасибо Вячеславу Фролову)

Можеш сказать конкретно с какими версиями opal и ptlib у тебя откомпилировалось а то я несколько перепробовал ругается на ошибку компиляции в sip модуле . версия modem 1.1
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Дима77



Зарегистрирован:
01.07.2008
Сообщения: 100

Статус: Оффлайн 

СообщениеДобавлено: Вт Окт 06, 2009 16:28    Заголовок сообщения:

Вот чтоб на блюдечке и с каемочкой:
Можно так

svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/tags/v2_6_4 ptlib
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/tags/v3_6_4 opal
cvs -z3 -d:pserver:anonymous@t38modem.cvs.sourceforge.net:/cvsroot/t38modem co -P t38modem

Ну естественно не зипы качать надо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
enzonieri



Зарегистрирован:
26.02.2010
Сообщения: 1

Статус: Оффлайн 

СообщениеДобавлено: Пт Фев 26, 2010 02:12    Заголовок сообщения: RTP_T38 Raw data decode failure

Не могу понять где облажался...

2010/02/26 00:47:04.290 Pool:0xb7c67b90 MySIPConnection::GetLocalMediaFormats:
T.38

2010/02/26 00:47:04.290 Pool:0xb7c67b90 RFC2833 Tx capability set to "-"
2010/02/26 00:47:04.290 Pool:0xb7c67b90 RFC2833 Tx capability set to "-"
2010/02/26 00:47:04.291 Pool:0xb7c67b90 PTLib Created thread 0x8ba7628 Media Patch
2010/02/26 00:47:04.292 Opal Liste...0xb7dacb90 OpalUDP Binding to interface: 77.120.121.147:6060
2010/02/26 00:47:04.293 Opal Liste...0xb7dacb90 SIP Waiting for PDU on udp$80.91.169.2:5060<if=udp$77.120.121.147:6060>
2010/02/26 00:47:04.296 Opal Liste...0xb7dacb90 SIP PDU received: rem=udp$80.91.169.2:5060,local=udp$77.120.121.147:6060,if=77.120.121.147%eth0
INVITE sip:SIP-USER@77.120.121.147:6060 SIP/2.0
CSeq: 57632040 INVITE
Via: SIP/2.0/UDP 80.91.169.2:5060;branch=z9hG4bK-7794-122390B
User-Agent: Cirpack/v4.42a (gw_sip)
From: <sip:4822819@sip.datagroup.com.ua>;tag=00-08190-0385438c-7d3403060
Call-ID: 76904657-cd20-df11-8bbb-004063e53408@pestunov
To: "root" <sip:SIP-USER@sip.datagroup.com.ua>;tag=10424657-cd20-df11-8bbb-004063e53408
Contact: <sip:80.91.169.2:5060>
Allow: UPDATE,REFER,INFO
Content-Type: application/sdp
Content-Length: 209
Max-Forwards: 31

v=0
o=cp10 126713801546 126713801548 IN IP4 80.91.169.37
s=SIP Call
c=IN IP4 80.91.169.37
t=0 0
m=audio 30926 RTP/AVP 8 0
b=AS:64
a=rtpmap:8 PCMA/8000/1
a=rtpmap:0 PCMU/8000/1
a=ptime:20
a=sendrecv

2010/02/26 00:47:04.304 Opal Liste...0xb7dacb90 SIP Sending PDU (429 bytes) to: rem=udp$80.91.169.2:5060,local=udp$77.120.121.147:6060,if=77.120.121.147%eth0
SIP/2.0 100 Trying
CSeq: 57632040 INVITE
Via: SIP/2.0/UDP 80.91.169.2:5060;branch=z9hG4bK-7794-122390B;rport=5060;received=80.91.169.2
From: <sip:4822819@sip.datagroup.com.ua>;tag=00-08190-0385438c-7d3403060
Call-ID: 76904657-cd20-df11-8bbb-004063e53408@pestunov
To: "root" <sip:SIP-USER@sip.datagroup.com.ua>;tag=10424657-cd20-df11-8bbb-004063e53408
Contact: <sip:SIP-USER@77.120.121.147:6060>
Content-Length: 0


2010/02/26 00:47:04.305 Opal Liste...0xb7dacb90 OpalUDP Setting interface to 77.120.121.147%eth0
2010/02/26 00:47:04.305 Opal Liste...0xb7dacb90 SIP Queueing PDU "57632040 INVITE sip:SIP-USER@77.120.121.147:6060", transaction=z9hG4bK-7794-122390B, token=10424657-cd20-df11-8bbb-004063e53408
2010/02/26 00:47:04.306 Opal Liste...0xb7dacb90 ThreadPool Allocated worker thread by group Id 10424657-cd20-df11-8bbb-004063e53408
2010/02/26 00:47:04.306 Opal Liste...0xb7dacb90 Opal Transport clean up on termination
2010/02/26 00:47:04.306 Opal Liste...0xb7dacb90 Opal Transport Close
2010/02/26 00:47:04.306 Opal Liste...0xb7dacb90 Opal Deleted transport udp$80.91.169.2:5060<if=udp$77.120.121.147:6060>
2010/02/26 00:47:04.308 Media Patch:0xb7c26b90 PTLib Started thread 0x8ba7628 Media Patch:0xb7c26b90
2010/02/26 00:47:04.308 Media Patch:0xb7c26b90 Patch Thread started for Patch[0x8bed910] OpalRTPMediaStream-Source-T.38 -> T38ModemMediaStream-Sink-T.38
2010/02/26 00:47:04.308 Media Patch:0xb7c26b90 RTP_UDP Session 1, Control PDU from incorrect host, is 77.120.121.147 should be 80.91.169.37
2010/02/26 00:47:04.309 Media Patch:0xb7c26b90 T38_RTP Read UDPTL of size 172
2010/02/26 00:47:04.309 Media Patch:0xb7c26b90 RTP_T38 Raw data decode failure: 172 bytes.
2010/02/26 00:47:04.309 Media Patch:0xb7c26b90 RTP_UDP Session 1, Control PDU from incorrect host, is 77.120.121.147 should be 80.91.169.37
2010/02/26 00:47:04.310 Media Patch:0xb7c26b90 T38_RTP Read UDPTL of size 172
2010/02/26 00:47:04.310 Media Patch:0xb7c26b90 RTP_T38 Raw data decode failure: 172 bytes.
2010/02/26 00:47:04.310 Media Patch:0xb7c26b90 T38_RTP Read UDPTL of size 172
2010/02/26 00:47:04.311 Media Patch:0xb7c26b90 RTP_T38 Raw data decode failure: 172 bytes.
2010/02/26 00:47:04.311 Media Patch:0xb7c26b90 T38_RTP Read UDPTL of size 172
2010/02/26 00:47:04.312 Media Patch:0xb7c26b90 RTP_T38 Raw data decode failure: 172 bytes.
2010/02/26 00:47:04.312 Media Patch:0xb7c26b90 T38_RTP Read UDPTL of size 172
2010/02/26 00:47:04.313 Media Patch:0xb7c26b90 RTP_T38 Raw data decode failure: 172 bytes.
2010/02/26 00:47:04.313 Pool:0xb7c67b90 Media Starting thread Media Patch:0xb7c26b90
2010/02/26 00:47:04.313 Pool:0xb7c67b90 PTLib Created thread 0x8bdedb8 Media Patch
2010/02/26 00:47:04.314 Media Patch:0xb7be5b90 PTLib Started thread 0x8bdedb8 Media Patch:0xb7be5b90
2010/02/26 00:47:04.314 Media Patch:0xb7be5b90 Patch Thread started for Patch[0x8bb6270] T38ModemMediaStream-Source-T.38 -> OpalRTPMediaStream-Sink-T.38
2010/02/26 00:47:04.314 Media Patch:0xb7be5b90 T38ModemMediaStream::ReadPacket ifp = {
type_of_msg = t30_indicator no-signal
}
2010/02/26 00:47:04.315 Media Patch:0xb7be5b90 T38ModemMediaStream::ReadPacket packet 0 size=1 type=[pt=96] ts=0
2010/02/26 00:47:04.315 Media Patch:0xb7be5b90 RTP Session 1, first sent data: ver=2 pt=[pt=96] psz=1 m=0 x=0 seq=0 ts=66472 src=5b1e2281 ccnt=0
2010/02/26 00:47:04.315 Media Patch:0xb7be5b90 T38_RTP Encoded transmitted UDPTL data :
{
seq_number = 0
primary_ifp_packet = 1 octets {
00 .
}
error_recovery = secondary_ifp_packets 0 entries {
}
}
2010/02/26 00:47:04.315 Media Patch:0xb7be5b90 T38_RTP Sending UDPTL of size 6
2010/02/26 00:47:04.316 Pool:0xb7c67b90 Media Starting thread Media Patch:0xb7be5b90
2010/02/26 00:47:04.316 Pool:0xb7c67b90 OpalCon Media stream threads started.
2010/02/26 00:47:04.316 Pool:0xb7c67b90 MySIPConnection::OnSwitchedFaxMediaStreams: NOT switched to fax
2010/02/26 00:47:04.316 Pool:0xb7c67b90 OpalCon Switch of media streams to fax failed on Call[Cea061e731]-EP<sip>[10424657-cd20-df11-8bbb-004063e53408]
2010/02/26 00:47:04.316 Pool:0xb7c67b90 Call GetOtherPartyConnection Call[Cea061e731]-EP<sip>[10424657-cd20-df11-8bbb-004063e53408]
2010/02/26 00:47:04.316 Pool:0xb7c67b90 MySIPConnection::OnSwitchedFaxMediaStreams: fallback to audio
2010/02/26 00:47:04.317 Pool:0xb7c67b90 MySIPConnection::SwitchFaxMediaStreams: audio
2010/02/26 00:47:04.317 Pool:0xb7c67b90 MySIPConnection::GetMediaFormats:
G.711-ALaw-64k
T.38
UserInput/RFC2833


opal/ptlib/t38modem trunk
centos

T38Modem Options: -ttttt -o /var/log/t38-0.log –sip-audio *ALaw* –sip-listen udp$77.120.121.147:6060 –sip-proxy SIP-USER:SIP-PASSWD@sip.datagroup.com.ua –sip-register SIP-USER@sip.datagroup.com.ua,SIP-PASSWD,5937977,sip.datagroup.com.ua –no-h323 –ptty +/dev/ttyT38-0 –route modem:.*=sip:@sip.datagroup.com.ua;OPAL-Force-Fax-Mode –route sip:.*=modem: -u SIP-USER

full level 5 trace: http://drop.io/jlgnlgh
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Список форумов Asterisk Forum -> Asterisk IP PBX Ответить на тему
Страница 1 из 1

Добавить в Избранное

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
You cannot attach files in this forum
You cannot download files in this forum