Вы можете указать это значение, используя поле заголовка User-Agent в методе REGISTER.
См. Раздел 20.41 протокола SIP RFC.
Пример тела метода REGISTER, который содержит поле заголовка User-Agent:
Session Initiation Protocol
Request-Line: REGISTER sip:192.168.16.40 SIP/2.0
Method: REGISTER
[Resent Packet: False]
Message Header
Via: SIP/2.0/UDP 192.168.16.181:32262;branch=z9hG4bK-d87543-624dc77d9c1b9618-1--d87543-;rport
Max-Forwards: 70
Contact: <sip:[email protected]:32262;rinstance=9dd2c78e6ac0a5a5>
To: "soft 2"<sip:[email protected]>
From: "soft 2"<sip:[email protected]>;tag=394aa21c
Call-ID: YjYzYTAyNzM0NGVkYmEzZWMyMzJmNzMzNDZjMzIyMjg.
CSeq: 1 REGISTER
Expires: 3600
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
User-Agent: X-Lite release 1011s stamp 41150
Content-Length: 0
EDIT:
Этот код должен быть в вашем приложении, а не на сервере.
Вы должны орудие или использовать готовый SIP Stack.
Популярные бесплатные библиотеки SIP Stack - MjSip и Doubango - много программного обеспечения с открытым исходным кодом SIP-клиенты (телефоны) используют их.
В основном в стеке SIP у вас есть класс для каждого поля заголовка (в соответствии с RFC) - в значительной степени как POJO/Simple Java Bean. Чем у вас есть фабрика сообщений, которая поддерживает создание для всех SIP2.0 (иногда + сообщения расширения для SIMPLE - это служба чата и присутствия). Сообщения - РЕГИСТРАЦИЯ, ПРИГЛАШЕНИЕ, АКК и т. Д. Чем у вас есть Parser, который предлагает удобные методы для извлечения информации из тела сообщения (поддерживает все типы сообщений). Это примерно то, что имеет место в SIPStack.
Итак, когда вы создаете сообщение, у вас есть коллекция полей заголовков (и набор атрибутов для SDP, если требуется), прикрепленных к этому сообщению (программно, это действительно зависит от реализации SIPStack), и вы просто добавляете сбор необходимых полей заголовка.
спасибо за ваш ответ. Но где я могу найти этот метод? в моем коде Android или в конфигурационных файлах Asterisk. Укажите в каком файле и где я должен реализовать этот код? заранее спасибо – juned
Я обновил ответ. – hovanessyan
спасибо за хорошее объяснение. но я не использую какую-либо SIP-библиотеку, такую как MjSip и Doubango. Я использую встроенную библиотеку android. В этом случае можно ли изменить имя user-agent? – juned