I know this was posted years ago now, but I recently ran into the same issue and would like to post my solution for future reference.
I could send one key, but adding the newline would not be encoded and interpreted by the Polycom.
In edhortons example, the Polycom receives 'Key:MessagesKey:ArrowDown' (confirmed in the logs) and is an invalid action.
This solution will send the file with any encoding required as a form, and is also way easier to read and edit.
Using Debian Linux I made a script that sends this line (though you can use it in terminal too)
curl --digest -u Push:Push --form "fileupload=@send.txt" --header "Content-Type: application/x-com-polycom-spipx" xx.xx.xx.xx/push
Use my 'send.txt' as an example, but fill it up with as many commands as is needed. Make sure it is located in the same place the command or script will be run from:
<PolycomIPPhone><Data priority="Critical">Key:Setup Key:Dialpad2 Key:Softkey4 Key:Dialpad4 Key:Softkey4</Data></PolycomIPPhone>