Да, операторы доступны для манипулирования объектами PJSIP_HEADER в PJSIP.
Вот пример, как использовать PJSIP_HEADER для автоподнятия звонка на основе входящего номера:
1. Определите функцию обратного вызова для обработки входящих вызовов:
```c
pjsip_module mod_my_module = {
...,
/* Callback to be called to handle incoming call */
pjsip_on_rx_request,
...
};
```
2. Внутри функции обратного вызова вы можете проверить входящий номер и добавить соответствующий заголовок SIP-INFO. Например:
```c
pj_str_t info_header_name = {"SIP-INFO", 8};
pj_str_t info_header_value = {"Autopickup", 10};
pjsip_on_rx_request(pjsip_rx_data *rdata) {
/* Get the incoming phone number */
pj_str_t incoming_number = rdata->msg_info.to.aor;
/* Check if the incoming number is 1001 */
if (pj_strcmp2(&incoming_number, "1001") == 0) {
/* Add SIP-INFO header to automatically pick up the call */
pjsip_generic_string_hdr *info_hdr;
pj_status_t status = pjsip_hdr_create(pool, &info_header_name, &info_header_value, &info_hdr);
if (status == PJ_SUCCESS) {
pjsip_msg_add_hdr(rdata->msg_info.msg, (pjsip_hdr*)info_hdr);
}
}
/* Continue processing the incoming call */
return PJSIP_MODULE_PASS;
}
```
Это простой пример, который позволяет добавить заголовок SIP-INFO для автоматического поднятия звонка на основе входящего номера. Вы можете настроить и настраивать код согласно своим потребностям.
Надеюсь, это поможет вам.