======================= 380 Alternative Service ======================= .. contents:: :local: :depth: 3 Overview ~~~~~~~~ SIP response code `380 Alternative Service` is defined in `RFC 3261 `_. SIP servers may send this response to INVITE request in case they for some reason don't want to connect the call as requested, but prefer some other way how to dial the number. For example, the SIP server may refuse to make a SIP call and instead instruct Acrobits client to complete the call using call-through or web callback service, via cellular network. Usage ~~~~~ When Acrobits SIP client receives `380 Alternative Service` response to INVITE request, it checks for a custom header named `X-Acro-DialAction`. The value of this header contains a new dialAction to perform with this number. In case the `X-Acro-DialAction` header is missing, or contains invalid value, the response is treated as error and call is terminated. .. note:: In case the `X-Acro-Dialaction` header contains a value which will result in another SIP call to the same number, the process would get into an infinite loop. Acrobits client detects this situation and after several attempts, it stops trying and the call fails. For the list of all supported dial actions, see the table in :ref:`dialactions`. Example ~~~~~~~ response to INVITE: .. code-block:: none SIP/2.0 380 Alternative Source Via: SIP/2.0/UDP 10.20.30.40;rport=5060;branch=z9hG4bKa00yZB01yKv1Q;received=10.20.30.41 Contact: From: "xxxx" ;tag=86SDXm7FQ01er Call-ID: cd9b102a-8a01-1233-af98-485b39895799 CSeq: 76630747 INVITE To: ;tag=E127A393A340EBFCEC5C7FF7F06EE079 X-Acro-DialAction: callThrough Content-Length: 0 This response will make Acrobits client try to call the dialed number via call through.