обновить астериск не вариант. Про sip reload конечно же забыл.
А вообще эта фича реализована в 2004 году. Т.е. задолго до 1.4 ветки.
switch ( 2014-03-31 19:36:29 +0400 )редактироватьВсем привет. Есть задача подключиться к билайну, он в кои-то веки стал предоставлять возможность подключения по SIP. Стоит у них SI3000 - довольно популярная штука у операторов, но настроена как-то странно. Им обязательно наличие user=phone
в инвайте и в полях TO. Без этого отдают 503 ошибку даже на OPTIONS пакеты. В астериске эта хрень в принципе реализована с 2004 года (опция usereqphone), но по непонятным причинам не работает. Изучение исходников показало, что есть некоторые условия, при которых эта хрень подставляется. Я их вроде бы исполняю, но все равно ее нет ни в инвайтах, ни в других пакетах. Пытался попросить убрать эту штуку вообще, но ихний рукожопый и крайне неприятный в общении телефонист заявил что делать ничего не будет, не может и не умеет.
Вот кусок кода, ответственного за эти действия:
if (ast_test_flag(&p->flags[0], SIP_USEREQPHONE)) {
const char *s = p->username; /* being a string field, cannot be NULL */
/* Test p->username against allowed characters in AST_DIGIT_ANY
If it matches the allowed characters list, then sipuser = ";user=phone"
If not, then sipuser = ""
*/
/* + is allowed in first position in a tel: uri */
if (*s == '+')
s++;
for (; *s; s++) {
if (!strchr(AST_DIGIT_ANYNUM, *s) )
break;
}
/* If we have only digits, add ;user=phone to the uri */
if (*s)
urioptions = ";user=phone";
}
Вопрос, собственно: что делать?
INVITE sip:2510@10.1.5.22;user=phone SIP/2.0. Via: SIP/2.0/UDP 10.1.5.114:5060;branch=z9hG4bK213830df;rport. Max-Forwards: 70. From: "100" <sip:100@10.1.5.114>;tag=as4b371098. To: <sip:2510@10.1.5.22;user=phone>.
sip reload сказать или обновить таки астериск с 1.4 ? :)
обновить астериск не вариант. Про sip reload конечно же забыл.
А вообще эта фича реализована в 2004 году. Т.е. задолго до 1.4 ветки.
switch ( 2014-03-31 19:36:29 +0400 )редактироватьЗадан: 2014-03-31 19:08:04 +0400
Просмотрен: 1,536 раз
Обновлен: Mar 31 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.