I understand that the reponse is sent to the via header address and
the via on |NOTIFY| msg is of the presence server then why the
response is sent to dispatcher?

Your understanding is correct in terms what RFC3261 requires. However,
SIPp does not follow these rules automatically - after all, it is a test
tool, so you want to be able to test various "what if this is incorrect"
scenarios.

Advertising

Therefore, SIPp sends all messages of a given call to the same IP
address and port until you use the |<setdest>| action to change that for
that particular call. The initial values common for all calls are given
at the command line.

So before sending the first |200| to the |NOTIFY|, you have to use
|<setdest>| to change the peer's address and port. The manual recommends
not to use |<setdest>| too often because it is a resource-expensive
operation, so I would do something like

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot