> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt. # Asterisk > Configure warm transfers between Synthflow and Asterisk-based PBX systems so callers are handed off to human agents. When a caller asks a Synthflow agent for a human, the agent can warm-transfer the call to a human agent on an Asterisk-based PBX. Your PBX dialplan must accept the transfer request from Synthflow, and the agent needs a call transfer action in warm mode. ## Warm transfer flow 1. Synthflow sends a new SIP `INVITE` to the human agent (the transferee). 2. When the human agent answers, Synthflow sends a `REFER` request on the original call with a `Refer-To` URI. 3. The Asterisk PBX accepts the `REFER` and opens a new channel to the `Refer-To` URI. 4. The `Refer-To` URI contains a random ID prefixed with `0875704225`. 5. That URI bridges the caller and the human agent, which completes the warm transfer. ## Asterisk dialplan Add a `from-synthflow` context to your dialplan. In both examples, the first extension routes the call to the human agent's number, `+12345678912`. The `_0875704225.` extension matches the `Refer-To` URI and dials back to Synthflow to bridge the call. Replace `sip.synthflow.ai` with your region's [SIP address](/connect-over-sip#sip-addresses) if your workspace is in the US or EU region. ### AEL (`extensions.ael`) ```ael context from-synthflow { +12345678912 => { Dial(PJSIP/${EXTEN}); Hangup(); } _0875704225. => { Dial(PJSIP/synthflow/sip:${EXTEN}@sip.synthflow.ai:32681); Hangup(); } } ``` ### Classic dialplan (`extensions.conf`) ```conf [from-synthflow] exten => +12345678912,1,Dial(PJSIP/${EXTEN}) same => n,Hangup() exten => _0875704225.,1,Dial(PJSIP/synthflow/sip:${EXTEN}@sip.synthflow.ai:32681) same => n,Hangup() ``` > **Note** > > The `_0875704225.` extension pattern must match the prefix in the `Refer-To` URI, or the transfer does not complete. ## Synthflow agent ### Outbound agent 1. Select **Agents** in the left sidebar. 2. [Create a new outbound agent](/create-an-agent). 3. Add a DID number. A test or dummy DID works. ### Warm transfer action 1. Select **Agents** in the left sidebar, then select the agent. 2. Select **Actions**. 3. On the **During the call** tab, select **Add Action** → **Call Transfer**. 4. Enter the human agent's phone number and select **Add Actions**. A new number prompts you to validate it. 5. Select the action you created, then select **Transfer Settings**. 6. Set **Transfer Mode** to **Warm with message**. You can enter a message the agent says before the transfer, for example "The user requested the manager, merging you now!" The [transfer modes](/call-transfers#transfer-modes) table lists what each mode does. 7. Select **Save**. ## Transfer test 1. Select **Agents** in the left sidebar, then select the agent. 2. Under the agent's name, select **Test Agent**. 3. Dial the number and start a conversation with the agent. Say "Please transfer to a human agent." Synthflow dials the transferee. When the human agent answers, they hear the configured message, and then the caller is merged into the call. > Warm transfers between Synthflow agents and Asterisk-based PBX systems.