If it is ok ot group by calltype, try:
SELECT
calltype
, calldate
, from_unixtime(FLOOR(UNIX_TIMESTAMP(calldate)/(60*60))*(60*60)) GroupTime
,case when calltype='outgoing' then COUNT(*) else 0 end as CntOut
,case when calltype='ingoing' then COUNT(*) else 0 end as CntIn
FROM asterisk.cdr
WHERE
accountcode = '10102-131'
AND DATE (calldate) = DATE (NOW())
AND (calltype = 'outgoing' or calltype='ingoing')--if calltype in only 'ingoing' or 'outgoing', you can omit this line
GROUP BY calltype, calldate;
But if not, the query would be a bit complicated:
SELECT
t.calldate
, from_unixtime(FLOOR(UNIX_TIMESTAMP(t.calldate)/(60*60))*(60*60)) GroupTime
, t_out.cnt as CntOut
, t_in.cnt as CntIn
FROM
asterisk.cdr as t
left join (select calldate,count(*) cnt from asterisk.cdr where calltype='outgoing' group by calldate) as t_out
on t.calldate=t_out.calldate
left join (select calldate,count(*) cnt from asterisk.cdr where calltype='ingoing' group by calldate) as t_in
on t.calldate=t_in.calldate
WHERE
t.accountcode = '10102-131'
AND DATE (t.calldate) = DATE (NOW())
GROUP BY t.calldate;