2012-03-09 2 views
1

Я разрабатываю приложение SIP. Когда я регистрируюсь на сервере SIP через мое приложение для Android, пользовательский агент по умолчанию, отображаемый андроидом на сервере звездочки, равен SIPAUA/0.1.001. Как мне это изменить? Я искал в Интернете ничего не мог найти? Есть ли способ в android изменить его? Ресурсы, которые я использую этоКак установить пользовательский пользовательский SIP-агент в android?

  1. звездочка 1.8.7.1
  2. андроида 2.3.3

ответ

0

Вы можете указать это значение, используя поле заголовка 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), и вы просто добавляете сбор необходимых полей заголовка.

+0

спасибо за ваш ответ. Но где я могу найти этот метод? в моем коде Android или в конфигурационных файлах Asterisk. Укажите в каком файле и где я должен реализовать этот код? заранее спасибо – juned

+0

Я обновил ответ. – hovanessyan

+1

спасибо за хорошее объяснение. но я не использую какую-либо SIP-библиотеку, такую ​​как MjSip и Doubango. Я использую встроенную библиотеку android. В этом случае можно ли изменить имя user-agent? – juned

0

Вы также указали, какой sip lib вы используете, и проконсультируйтесь с этой библиотекой. Наиболее вероятно, что вы просто не установили это поле в библиотеке, в результате оно использует значение по умолчанию.

+0

Спасибо за ответ, но я не использую какую-либо SIP-библиотеку, такую ​​как MjSip и Doubango. Я использую встроенную библиотеку android.in в этом случае можно изменить имя user-agent? – juned

Смежные вопросы