Страница 5 из 6
Re: Опять вопрос
Добавлено: 15 окт 2011, 16:56
Vlad1983
так вы хотели в сторону оператора сквозь гудки?
тут ситуация наоборот и так или иначе решаемая.
Re: Опять вопрос
Добавлено: 15 окт 2011, 17:50
zzuz
Ну . Это был бы не я , если не испробывал , не отдебажил и не отснифил всё и вся) .Вполне вероятно , что я что-то мог пропустить , я к этому вопросу больше не возврщался.
Re: Опять вопрос
Добавлено: 16 окт 2011, 14:32
BeloVit
Влад, я попробовал ВСЕ 6 комбинаций. Ни одна не отработала.
Про что я и написал. А дамп снимаю медленно из-за того, что это не у меня в офисе железяка стоит а у клиента. И я туда раз в сутки и езжу. Удаленно можно конечно снимать, но я не могу заставить всех удаленно перестать звонить, дабы не флудить в канал. А народу тут полно.
Тут один знакомый подбросил патч. С ним, по его словам, оно здесь работало.
@ -18094,10 +18094,19 @
if (!req->ignore && p->invitestate != INV_CANCELLED && sip_cancel_destroy(p))
ast_log(LOG_WARNING, "Unable to cancel SIP destruction. Expect bad things.\n");
if (!req->ignore && p->owner) {
- ast_queue_control(p->owner, AST_CONTROL_RINGING);
- if (p->owner->_state != AST_STATE_UP) {
- ast_setstate(p->owner, AST_STATE_RINGING);
+ /* If we have INVITE dialog with early media and receive "Ringing"/"Queued" without SDP,
+ * we continue transmission of RTP to UAC.
+ *
+ * TODO: check if RTP is still being transmitting.
+ */
+ if (p->invitestate != INV_EARLY_MEDIA) {
+ ast_queue_control(p->owner, AST_CONTROL_RINGING);
+ if (p->owner->_state != AST_STATE_UP) {
+ ast_setstate(p->owner, AST_STATE_RINGING);
+ }
}
+ else
+ ast_queue_control(p->owner, AST_CONTROL_PROGRESS);
}
if (find_sdp(req)) {
if (p->invitestate != INV_CANCELLED)
@ -18128,7 +18137,15 @ * the same as we would treat a 180 Ringing
*/
if (!req->ignore && p->owner) {
- ast_queue_control(p->owner, AST_CONTROL_RINGING);
+ /* If we have INVITE dialog with early media and receive "Session progress" without SDP,
+ * we continue transmission of RTP to UAC.
+ *
+ * TODO: check if RTP is still being transmitting.
+ */
+ if (p->invitestate != INV_EARLY_MEDIA)
+ ast_queue_control(p->owner, AST_CONTROL_RINGING);
+ else
+ ast_queue_control(p->owner, AST_CONTROL_PROGRESS);
}
}
check_pendings(p);
Re: Опять вопрос
Добавлено: 16 окт 2011, 20:33
Vlad1983
попробовать стоит
Re: Опять вопрос
Добавлено: 17 окт 2011, 08:03
BeloVit
Блин. Ни хрена. Не робит патч. То ли не полный, то ли версии слишком разные. Ибо он был написан под 1.6.2.10
Re: Опять вопрос
Добавлено: 17 окт 2011, 08:11
Vlad1983
если от другой версии его тупо применять низя
вручную найти нужное место в целевом файле удалить строки, которые с "-" и добавить те что с "+"
Re: Опять вопрос
Добавлено: 17 окт 2011, 08:17
BeloVit
Ну типа именно так и делали... Но чего то не хватает...
Re: Опять вопрос
Добавлено: 17 окт 2011, 08:35
Vlad1983
может зоипер не понимает
точно нет в его сторону RTP?
в дампы смотрели?
Re: Опять вопрос
Добавлено: 17 окт 2011, 09:00
BeloVit
Этот Зойпер, главное, показывает, что типа идет EarlyMedia, но в трубу либо тишина либо КПВ фейковое
Re: Опять вопрос
Добавлено: 17 окт 2011, 09:02
Vlad1983
слушать дамп
можно даже смотреть - фейковое КПВ сразу видно четкими прямоугольниками