Każdy zna wszelkie dobre przykłady, jak skonfigurować klienta pjsip do odbierania wiadomości. mogę wysyłać wiadomości z klientem za pomocą:pjsip otrzymywać sms
pjsua_im_send(sip_acc_id, &to, NULL, &msgbody, NULL, NULL);
do dowolnej liczby.
Ale nie mam pojęcia, co zrobić, aby otrzymywać wiadomości na już zarejestrowane konto sip.
Wszelkie informacje będą mile widziane.
Uwaga: Mogę używać tylko biblioteki pjsip i innych bibliotek.
Edit: Niektóre nowych rzeczy znalazłem:
http://trac.pjsip.org/repos/ticket/1070
http://www.pjsip.org/release/0.5.4/PJSIP-Dev-Guide.pdf (jednak cały ten dokument mówi o przychodzących wiad to:
16.1.2 odebraniu wiadomości
Przychodzące żądania MESSAGE poza dowolnymi oknami dialogowymi będą odbierane przez aplikacjęModuł. Przychodzące żądania MESSAGE w oknie dialogowym będą powiadamiane o użyciu okna dialogowego przez on_tsx_state() wywołanie zwrotne okna dialogowego.
, która wciąż nie rzuca dużo światła na sposób obsługi wiadomości przychodzących.
http://www.ietf.org/rfc/rfc3261.txt
http://trac.pjsip.org/repos/wiki/SIP_Message_Buffer_Event
Edit2: Powiedziano mi, że on_pager funkcja powinna być używana do tej funkcji. Próbowałem, ale niestety nie udało mi się osiągnąć sukcesu.
Oto co zrobiłem:
/* Initialize application callbacks */
app_config->cfg.cb.on_call_state = &on_call_state;
app_config->cfg.cb.on_call_media_state = &on_call_media_state;
app_config->cfg.cb.on_incoming_call = &on_incoming_call;
app_config->cfg.cb.on_reg_state = &on_reg_state;
app_config->cfg.cb.on_pager = &on_pager;
i wdrożenie on_pager:
static void on_pager(pjsua_call_id call_id, const pj_str_t *from, const pj_str_t *to, const pj_str_t *contact, const pj_str_t *mime_type, const pj_str_t *body) {
NSLog(@"**************** on_pager called **********************");
AppDelegate *app = (AppDelegate *)[AppDelegate sharedApplication];
pjsua_call_info ci;
pjsua_call_get_info(call_id, &ci);
PJ_UNUSED_ARG(call_id);
PJ_UNUSED_ARG(to);
PJ_UNUSED_ARG(contact);
PJ_UNUSED_ARG(mime_type);
[app ring];
//PJ_LOG(3,(THIS_FILE, "MESSAGE from %.*s: %.*s (%.*s)", (int)from->slen, from->ptr, (int)text->slen, text->ptr, (int)mime_type->slen, mime_type->ptr));
postMessageStateNotification(call_id, &ci);
}
Spodziewałem aplikację aby zadzwonić on_pager po odebraniu wiadomości, ale tak się nie stało. on_incoming_call
jednak zostanie wywołany.