quando você transferir as chamadas, o asterisco procurará a extensão em seu contexto atual, portanto, se alguém ligar usando "vendas", poderá transferir apenas para os ramais 41XX, se quiser que ele seja transferido para os ramais 40XX, você deve adicionar 40XX para o contexto de vendas, exemplo:
[sales]
include => out-trunksip
exten => _41XX,1,Answer
exten => _41XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _41XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _41XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _41XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,n,Hangup
exten => _40XX,1,Dial(SIP/${EXTEN},40,TtRr)
(você também pode incluir o contexto de supervisor em seu contexto de vendas)
Se você quiser evitar que os usuários de vendas liguem para os usuários de supervisor e vice-versa, mas ainda permitirão que eles transfiram as chamadas uns para os outros, você poderá resolvê-lo desta maneira:
crie um novo contexto designado apenas para transferências de chamadas, em que você fornece extensões que devem ser acessadas ao transferir uma chamada, por exemplo:
[call-transfer]
exten => _40XX,1,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,1,Dial(SIP/${EXTEN},40,TtRr)
Em seguida, defina __TRANSFER_CONTEXT = transferência de chamadas:
[supervisor]
include => from-internal
exten => _40XX,1,Answer
exten => _40XX,n,Set(__TRANSFER_CONTEXT=call-transfer)
exten => _40XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _40XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _40XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _40XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _40XX,n,Hangup
[sales]
include => out-trunksip
exten => _41XX,1,Answer
exten => _40XX,n,Set(__TRANSFER_CONTEXT=call-transfer)
exten => _41XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _41XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _41XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _41XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,n,Hangup
Só não tenho certeza se __TRANSFER_CONTEXT ainda está presente nas novas versões do asterisco:)