PJSIP Cabeçalho de registro personalizado

Estou tentando configurarTRAG comunicação com um servidor interno (usando a biblioteca PJSIP), no entanto, este servidor requer um campo de cabeçalho personalizado com um valor de cabeçalho especificado para oREGISTRATION ligar. Por exemplo, chamaremos esse cabeçalho obrigatórioMyHeader.

Pelo que encontrei, opjsua_acc_add() função @ adicionará uma conta e a registrará no servidor usando uma estrutura de configuraçã

O parâmetroreg_hdr_list da estrutura de configuração tem a descrição:

Os cabeçalhos SIP personalizados opcionais a serem colocados na solicitação de registr

O que parece exatamente o que eu preciso, no entanto, parece não ter efeito na chamada em si.

Aqui está o que eu tenho até agora:

    pjsua_acc_config cfg;
    pjsua_acc_config_default(&cfg);

    //...Some other config stuff related to the server...

    pjsip_hdr test;
    test.name = pj_str("MyHeader");
    test.sname = pj_str("MyHdr");
    test.type = PJSIP_H_OTHER;
    test.prev = cfg.reg_hdr_list.prev;
    test.next = cfg.reg_hdr_list.next;
    cfg.reg_hdr_list = test;

    pj_status_t status;
    status = pjsua_acc_add(&cfg, PJ_TRUE, &acc_id);

Do lado do servidor, não há campos de cabeçalho extras nem nada. E a estrutura usada para definir o cabeçalho pjsua_hdr) não temvalue ou campo equivalente, portanto, mesmo que ele tenha criado o cabeçalho, como ele define o valo

Aqu é a referência para a definição da lista de cabeçalhos e oreferênci para a estrutura do cabeçalho.

Editar Encontrei a solução graças a um colega de trabalho:

    struct pjsip_generic_string_hdr CustomHeader;
    pj_str_t name = pj_str("MyHeader");
    pj_str_t value = pj_str("HeaderValue");
    pjsip_generic_string_hdr_init2(&CustomHeader, &name, &value);

    pj_list_push_back(&cfg.reg_hdr_list, &CustomHeader);

Isso parece funcionar como esperad

questionAnswers(1)

yourAnswerToTheQuestion