I’ve been struggling with this for a while. Lets say you want to talk to gtalk. The configuration file, jabber.conf, should look something like:
debug=yes ;;Turn on debugging by default.
autoprune=no ;;Auto remove users from buddy list.
autoregister=no ;;Auto register users from buddy list.
type=client ;;Client or Component connection
serverhost=talk.google.com ;;Route to server for example,
firstname.lastname@example.org/Talk ;;Username with optional roster.
port=5222 ;;Port to use defaults to 5222
usetls=yes ;;Use tls or not
usesasl=yes ;;Use sasl or not
email@example.com ;;Manual addition of buddy to list.
statusmessage=“available” ;;Have custom status message for
timeout=100 ;;Timeout on the message stack.
Lets also say that both accounts can see each other’s presence and everything works like a charm. (I am just interested in outgoing calls from asterisk to gtalk so just leave the other configuration files alone).
Technically, both users are registered in each other’s roster so even if you remove "firstname.lastname@example.org", he/she will still be added to email@example.com buddy list. This is actually the case with the current implementation. Now here is the problem:
I can make a call from asterisk to Gtalk if the buddy[callee] is manually added but I cannot call him when he is not! WHY?
In both cases “jabber test” command shows that firstname.lastname@example.org is connected and there is no single difference! Even the Jabber messages that go back and forth right after start up between asterisk and gtalk are pretty much the same with the following exception:
The following message exists when the manual addition is not there:
JABBER: asterisk OUTGOING: Greetings I am the Asterisk Open Source PBX and I want to subscribe to your presence
Every other message is exactly the same!
I have not had the time to go through the code so just wondering if this is because of the way that calls are established. Does asterisk check to see if the callee is manually added when it tries to make a call to that buddy?