I have three single line VOIP accounts that call simultaneously under one campaign for one user, me. I couldn't find a solution to this in the forums so I wrote my own dialplan. I am posting it here in case anyone else needs to do this. Please note I am very new to Asterisk so it may not be as elegant as it could be but it works.
Replace CarrierName with the name of the carrier.
exten => _90[2-9]xxxxxxxx,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _90[2-9]xxxxxxxx,n,GotoIf($[${EXISTS(${CarrierNumber})}=1]?NewCarrierNumber)
exten => _90[2-9]xxxxxxxx,n,Set(GLOBAL(CarrierNumber)=1)
exten => _90[2-9]xxxxxxxx,n(NewCarrierNumber),Set(GLOBAL(CarrierNumber)=$[${CarrierNumber} + 1])
exten => _90[2-9]xxxxxxxx,n,Set(GLOBAL(CarrierNumber)=$[${CarrierNumber} % 3])
exten => _90[2-9]xxxxxxxx,n,GotoIf($[${CarrierNumber}=0]?Spintel)
exten => _90[2-9]xxxxxxxx,n,GotoIf($[${CarrierNumber}=1]?Spintel2)
exten => _90[2-9]xxxxxxxx,n,GotoIf($[${CarrierNumber}=2]?Spintel3)
exten => _90[2-9]xxxxxxxx,n(Spintel),Dial(${TRUNKSPINTEL}/${EXTEN:1},,tTor)
exten => _90[2-9]xxxxxxxx,n,Hangup
exten => _90[2-9]xxxxxxxx,n(Spintel2),Dial(${TRUNKSPINTEL2}/${EXTEN:1},,tTor)
exten => _90[2-9]xxxxxxxx,n,Hangup
exten => _90[2-9]xxxxxxxx,n(Spintel3),Dial(${TRUNKSPINTEL3}/${EXTEN:1},,tTor)
exten => _90[2-9]xxxxxxxx,n,Hangup